home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
QRZ! Ham Radio 8
/
QRZ Ham Radio Callsign Database - Volume 8.iso
/
pc
/
files
/
t_pa0gri
/
nos1229.nr
< prev
next >
Wrap
Text File
|
1996-06-25
|
167KB
|
4,238 lines
.IZ
.\" Format this manual with "nroff -ms nos_1229.nr" or "troff -ms nos_1229.nr"
.nr LL 7.75i
.\" Aug 5,1990
.\" Original Phil Karn
.\" Sep 8,1990
.\" additions by Gerard van der Grinten, PA0GRI
.\" Mar 3, 1991
.\" additions by Bill Simpson
.\" Jul 16, 1991
.\" additions by Gerard van der Grinten, PA0GRI
.ND August 1, 1992
.sp 20
.TL
Network Operating System
.ti 3
User Reference Manual
.AU
Phil Karn, KA9Q
and
Gerard van der Grinten, PA0GRI
.sp 30
This manual reflects version 911229 of NOS 2.0m
as released to the public by PA0GRI
.sp 16
.nr HM 0.3i
.nr FM 0.3i
.NH 1
The NOS.EXE Program
.LP
The MS-DOS executable file \fBNOS.EXE\fP
(Further called \fBNos\fP) provides Internet (TCP/IP),
NET/ROM and AX.25
facilities. Because it has an internal multitasking operating system,
\fBNos\fP can act simultaneously as a client, a server and a packet switch
for all three sets of protocols. That is, while a local user accesses remote
services, the system can also provide those same services to remote users
while also switching IP, NET/ROM and AX.25 packets and frames between other
client and server nodes.
.LP
The keyboard and display is used by the local operator to control both host
and gateway level functions, for which a number of commands are provided.
.NH 2
Startup
.LP
nos [-b] [-s <#sockets>] [-d </directory>] [-v] [<startup file>]
.LP
When \fBNos\fP is executed without arguments, it attempts to open the file
\fBautoexec.nos\fP in the root directory of the current drive. If it
exists, it is read and executed as though its contents were typed on the
console as commands. This feature is useful for attaching communication
interfaces, configuring network addresses, and starting the various
services.
.LP
Four command-line options are accepted:
.NH 3
-b
.LP
The \fB-b\fP option specifies the use of BIOS for console output;
the default is to write directly to the video display buffer. Use
this option if you are running under a windowing package and have
trouble with output "bleeding through" on top of other windows.
.NH 3
-s <no_of_sockets>
.LP
The \fB-s\fP option specifies the size of the
\fIsocket\fP array to be allocated within \fBNos\fP. This limits the number of
network connections that may exist simultaneously; the default is 40.
.NH 3
-d </directory>
.LP
The \fB-d\fP option allows the user to specify a "root" directory for the
configuration and spool files; it defaults to the root directory of the
system.
.NH 3
-v
.LP
The \fB-v\fP option allows the user to view command execution during
the startup of \fBNos\fP. It lets the commands read from \fBautoexec.nos\fP
echo before they are executed. This is a nice help if \fBNos\fP stops (hangs)
during initialization.
.LP
After all command line options, the name of a alternate startup file may
be specified. This file is then opened and read instead
of \fBautoexec.nos\fP.
.bp
.NH 2
DOS environement variables.
.LP
The following DOS environement variables can be used to specify things
to \fBNOS\fP.
.NH 3
TZ
.LP
The TZ variable should be set to the local timezone. Default is UTC.
This is used on the timestamp in smtp.
.NH 3
MAILER
.LP
The MAILER specifies what program should be started when the \fBmail\fP
command is entered. Default is BM.EXE.
.NH 3
COMSPEC
.LP
The COMSPEC specifies what command shell will be used to \fIshell out\fP
of \fBNos\fP. This is normaly set by MS-DOS startup to COMMAND.COM.
Default is also COMMAND.COM.
.NH 3
TMP
.LP
The TMP variable is used to create a spot where temporary files are created.
Without TMP being set the temp files are created in the root directory.
A sample is "set TMP=C:\\tmp\\".
.NH 3
USER
.LP
The USER variable is used by \fBftp\fP and \fBRlogin\fP to set the username
for the rlogin daemon on the remote system. The default when not setting USER
is guest. Guess you don't like it, but that's life.
With \fBftp\fP the user is suggested in the user name prompt. If a cr only
is given the suggested name is used, otherwise the given name.
.NH 1
Console modes
.LP
The console may be in one of two modes: \fIcommand mode\fP and
\fIconverse mode\fP.
In \fIcommand mode\fP, the prompt \fBnet>\fP is displayed and any of the
commands described in the \fBCommands\fP chapter may be entered.
In \fIconverse mode\fP,
keyboard input is processed according to the \fIcurrent session\fP.
.LP
Sessions come in many types: \fITelnet, Ttylink, Rlogin, FTP, AX25,
Finger, Command, NETROM, Ping, More, Dial, Dir, PPP PAP,
Hopcheck\fP and \fITip\fP.
.LP
In a Telnet, Ttylink, AX25, NETROM, Rlogin, or Tip
session, keyboard input is sent to the
remote system and any output from the remote system is displayed on the
console. In an FTP session, keyboard input is first examined to see if
it is a known local command; if so it is executed locally. If not, it
is "passed through" to the remote FTP server.
(See the \fBFTP Subcommands\fP chapter).
In a Ping session the user may test the path to a
remote site, in a More session, the user may examine a local
file. A Hopcheck session is used to trace the path taken by packets
to reach a specified destination. A Finger session is used to peek at a
remote system for its users (and what they are doing on some extended
responses from UNIX systems). PPP PAP is used as a link setup like slip
between two systems.
.LP
The keyboard also has \fIcooked\fP and \fIraw\fP states.
In \fIcooked\fP state, input
is line-at-a-time; the user may use the line editing characters ^U, ^R,
^B, ^W and backspace to erase the line, redisplay the line, redisplay
the remainder of the previous line, erase last word and erase the last
character, respectively.
Hitting either return or line feed passes the
complete line up to the application.
In \fIraw\fP mode, each character is
immediately passed to the application as it is typed.
The keyboard is always in \fIcooked\fP state in command mode.
It is also \fIcooked\fP in converse mode on an AX25, FTP or NET/ROM session.
In a Telnet or Ttylink session it depends on
whether the remote end has issued (and the local end has
accepted) the Telnet WILL ECHO option. (See the \fBecho\fP command).
.LP
On the IBM-PC, the user may escape back to \fIcommand mode\fP
by hitting the F10 key or the \fIescape\fP key.
On other systems, the user must enter the \fIescape\fP character, which is by
default control-] (hex 1d, ASCII GS). (Note that this is distinct from the
ASCII character of the same name). The escape character can be changed (see
the \fBescape\fP command). The F10 key can be redefined with the fkey command
so the user is now warned to leave one escape possibility open for himself.
Setting both F10 and escape to unreachable codes renders a system unescapable
and the user hung in a session.
.LP
In the IBM PC version, each session (including the command "session")
has its own screen.
When a new session is created,
the command display is saved in memory and the screen is cleared.
When the command escape key (usually F10 or ^]) is hit,
the current session screen is saved and the command screen is restored.
When a session is resumed,
its screen is restored exactly as it appeared when it was last current.
\fBNos\Fp expects that the driver NANSY.SYS is loaded to support the screen
and terminal emulation routines. ANSY.SYS has many problems and should NOT
been used. Version 24 of nansy.sys (nan24hyc.zip on download systems) should
be used for best results. Users of DeskView should be ok with dvansy.sys as
it has been reported that tab expansion is all right under DV.
.NH 1
Commands
.LP
This section describes the commands recognized in command mode,
or within a startup file such as \fBautoexec.nos\fP.
These are given in the following notation:
.DS
command
command literal_parameter
command subcommand <parameter>
command [<optional_parameter>]
command a | b
.DE
.LP
Many commands take subcommands or parameters, which may be optional or
required. In general, if a required subcommand or parameter is omitted,
an error message will summarize the available subcommands or required
parameters. (Giving a '?' in place of the subcommand will also generate the
message. This is useful when the command word alone is a valid command.) If
a command takes an optional value parameter, issuing the command without the
parameter generally displays the current value of the variable. (Exceptions
to this rule are noted in the individual command descriptions.)
.LP
Two or more parameters separated by vertical bar(s) denote a choice between
the specified values. Optional parameters are shown enclosed in [brackets],
and a parameter enclosed in <angle brackets> should be replaced with an
actual value or string. For example, the notation \fB<hostid>\fP denotes an
actual host or gateway, which may be specified in one of two ways:
as a numeric IP address in dotted decimal notation (eg. 44.0.0.1.),
or as a symbolic name listed in the file \fBdomain.txt\fP,
.LP
All commands and many subcommands may be abbreviated. You only need
type enough of a command's name to distinguish it from others that
begin with the same series of letters. Parameters, however, must be
typed in full.
.LP
Certain FTP subcommands (eg. \fBput, get, dir\fP, etc) are recognized
only in converse mode with the appropriate FTP session; they are not
recognized in command mode.
(See the \fBFTP Subcommands\fP chapter.)
.NH 2
<CR>
.LP
Entering a carriage return (empty line) while in command mode puts you in
converse mode with the current session. If there is no current session,
\fBNos\fP remains in command mode and reissues the \fBnet>\fP prompt.
.NH 2
!
.LP
An alias for the \fBshell\fP command.
.NH 2
#
.LP
Commands starting with the hash mark (#) are ignored. This is mainly useful
for comments in the \fBautoexec.nos\fP file.
.NH 2
abort [<session #>]
.LP
Abort a FTP \fBget, put or dir\fP operation in progress. If issued without
an argument, the current session is aborted. (This command works only
on FTP sessions.) When receiving a file, \fBabort\fP
simply resets the data connection; the next incoming data packet will generate
a TCP RST (reset) response to clear the remote server. When
sending a file, \fBabort\fP sends a premature end-of-file. Note that in both
cases \fBabort\fP will leave a partial copy of the file on the destination
machine, which must be removed manually if it is unwanted.
.NH 2
arp
.LP
Display the Address Resolution Protocol table that maps IP addresses
to their subnet (link) addresses on subnetworks capable of broadcasting.
For each IP address entry the subnet type (eg. Ethernet, AX.25), subnet
address and time to expiration is shown. If the link address is currently
unknown, the number of IP datagrams awaiting resolution is also shown.
.NH 3
arp add <hostid> ether | ax25 | netrom | arcnet <ether_addr> | <ax25_addr>
.LP
Add a permanent entry to the table. It will not time out
as will an automatically-created entry, but must be removed with the
\fBarp drop\fP command.
.NH 3
arp drop <hostid> ether | ax25 | netrom | arcnet
.LP
Delete a permanent entry from the arp table.
.NH 3
arp flush
.LP
Drop all automatically-created entries in the ARP table; permanent
entries are not affected.
.NH 3
arp publish <hostid> ether | ax25 | netrom | arcnet <ether_addr> | <ax25_addr>
.LP
This command is similar to the \fBarp add\fP command, but the
system will also respond to any ARP request it sees on the network that seeks
the specified address. (Use this feature with great care.)
.NH 2
autoroute <yes|no>
.LP
Displays or sets the IP autorouting option. When set all AX25 IP packets
are analysed and remembered.
.NH 2
asystat
.LP
Display statistics on attached asynchronous communications interfaces
(8250 or 16550A), if any. The display for each port consists of three
lines. The first line gives the port label and the configuration flags;
these indicate whether the port is a 16550A chip, the \fItrigger character\fP
if any,
whether CTS flow control is enabled,
whether RLSD (carrier detect) line control is enabled,
and the speed in bits per second.
(Receiving the \fItrigger character\fP causes the driver
to signal upper layer software that data is ready;
it is automatically set to the appropriate frame end
character for SLIP, PPP and NRS lines.)
.LP
The second line of the status display shows receiver (RX) event counts: the
total number of receive interrupts, received characters, receiver overruns
(lost characters) and the receiver \fIhigh water mark\fP.
The high water mark is
the maximum number of characters ever read from the device during a single
interrupt. This is useful for monitoring system interrupt latency margins as
it shows how close the port hardware has come to overflowing due to the
inability of the CPU to respond to a receiver interrupt in time. 8250 chips
have no FIFO, so the high water mark cannot go higher than 2 before overruns
occur. The 16550A chip, however, has a 16-byte receive FIFO which the
software programs to interrupt the CPU when the FIFO is one-quarter full.
The high water mark should typically be 4 or 5 when a 16550A is used; higher
values indicate that the CPU has at least once been slow to respond
to a receiver interrupt.
.LP
When the 16550A is used, a count of FIFO timeouts is also displayed on the
RX status line. These are generated automatically by the 16550A when three
character intervals go by with more than 0 but less than 4 characters in the
FIFO. Since the characters that make up a SLIP or NRS frame are normally
sent at full line speed,
this count will usually be a lower bound on the number of frames received
on the port, as only the last fragment of a frame generally results
in a timeout (and then only when the frame is not a multiple of 4 bytes
long.)
.LP
Finally, the software fifo overruns and high water mark are displayed.
These indicate whether the <bufsize> parameter on the attach command
needs to be adjusted (see the \fBAttach Commands\fP chapter).
.LP
The third line shows transmit (TX) statistics,
including a total count of transmit interrupts, transmitted characters,
the length of the transmit queue in bytes,
the number of status interrupts,
and the number of THRE timeouts.
The status interrupt count will be zero
unless CTS flow control or RLSD line control has been enabled.
The THRE timeout is a stopgap measure to catch lost transmit interrupts,
which seem to happen when there is a lot of activity
(ideally, this will be zero).
.NH 2
attach <hw type> ...
.LP
Configure and attach a hardware interface to the system. The details
are highly interface dependent and dependent on configuration flags in the
file config.h when the software is build. It can be that not all drivers
listed below will be included in your copy of \fBNos\fP.
Detailed instructions for each driver are in the \fBAttach Commands\fP chapter.
Drivers are available for the following hardware types:
.NH 3
attach 3c500
.LP
Don't use this one anymore. Use the packet driver instead. This driver is
obsolete and not supported anymore.
.NH 3
attach asy
.LP
Standard PC asynchronous interface (com port) using the National 8250
or 16450 or 16550A chip or compatible equivalent.
.NH 3
attach axip
.LP
A "wormhole" ax25 digipeater device.
.NH 3
attach arcnet
.LP
A ARCnet driver via the PACKET driver.
.NH 3
attach drsi
.LP
N6TTO driver for the DRSI PCPA 8530 card.
.NH 3
attach eagle
.LP
WA3CVG/NG6Q driver for the Eagle Computer card (Zilog 8530).
.NH 3
attach hapn
.LP
KE3Z driver for the Hamilton Amateur Packet Network adapter board (Intel 8273).
.NH 3
attach hs
.LP
Special "high speed" 8530 driver for the WA4DSY 56kb/s modem.
.NH 3
attach kiss
.LP
This enables a multiplexed tnc type to be used for second channel. It is used
to connect a second port to an already attached asy interface. It will copy
most of the params of it's parent port.
.NH 3
attach netrom
.LP
This is a psuedo interface to enable NET/ROM operations.
.NH 3
attach packet
.LP
Driver for use with separate software "packet drivers" meeting the
FTP Software, Inc, Software Packet Driver specification.
.NH 3
attach pc100
.LP
Driver for the PACCOMM PC-100 (Zilog 8530) card.
.NH 3
attach pi
.LP
Dma driven 8530 scc board from VE3IFB.
.NH 3
attach scc
.LP
PE1CHL driver for generic 8530 cards.
.NH 3
attach slfp
.LP
Serial Line Faming Protocol packet driver.
.LP
An easy way to obtain a summary of the parameters required for a given device
is to issue a partial attach command (eg. \fBattach packet\fP.)
This produces a usage message giving the complete command format.
.NH 2
attended [off | on]
.LP
Displays or sets the global "I am present" flag in \fBNos\fP. This flag is
used in the welcome header by incoming ttylink connections.
.NH 2
ax25 <subcommand>
.LP
These commands are for Ax25 interfaces.
.NH 3
ax25 bc <interface> [on | off]
.LP
The bc command displays or enables or disables broadcasts via interface
\fBinterface\fP when on | off are given.
.NH 3
ax25 bcinterval [<seconds>]
.LP
The bcinterval displays or sets the time in seconds between \fBbc\fP broadcasts.
On display both the interval and the countdown values are shown.
.NH 3
ax25 bckick <interface>
.LP
The bckick command issues a direct broadcast to interface \fBinterface\fP when
so enabled by a \fIax25 bc <interface> on\fP command.
.NH 3
ax25 bctext ["broadcast text"]
.LP
The bctext command displays or sets the text to be send for broadcast
messages send out every \fBbcinterval\fP seconds.
.NH 3
ax25 blimit [<limit>]
.LP
Display or set the AX25 retransmission backoff limit. Normally each
successive AX25 retransmission is delayed by twice the value of the
previous interval; this is called \fIbinary exponential backoff\fP.
When the backoff reaches the blimit setting it is held at that value,
which defaults to 30.
To prevent the possibility of "congestive collapse" on a loaded channel,
blimit should be set at least as high as the number of stations sharing
the channel.
Note that this is applicable only on actual AX25 connections; UI frames
will never be retransmitted by the AX25 layer.
.NH 3
ax25 dest
.LP
See ax25 hearddest command. This is a shorthand version of it.
.NH 3
ax25 digipeat [on | off]
.LP
Display or set the digipeater enable flag. If the axip interface is used
this flag MUST be on , otherwise the digipeat function will not work at all.
.NH 3
ax25 filter <0 | 1 | 2 | 3>
.LP
The filter commands enables or disables the logging in the heard lists
of source and destination ax25_addresses. This is a bitwise or function
where the 01 value is for source stations and the 02 value for destination
stations. When the bit is off , logging is enabled, when on disabeled.
.NH 3
ax25 flush
.LP
Clear the AX.25 "heard" list (see \fBax25 heard\fP).
.NH 3
ax25 heard [<interface>]
.LP
Display the AX.25 "heard" list. For each interface that is configured to
use AX.25, a list of all ax25_addresses heard through that interface is
shown, along with a count of the number of packets heard from each station
and the interval, in hr:min:sec format, since each station was last heard.
The local station always appears first in the listing; the packet count
actually reflects the number of packets transmitted. This entry is always
present even if no packets have been sent. If interface is given, only
the heard list for that interface is displayed.
Note that logging of heard stations is controlled with the \fBax25 filter\fP
command.
.NH 3
ax25 hearddest [<interface>]
.LP
Displays the destination list, i.e. the addressed to stations. Next to the
time the last transmission to that station the time that station replied
(if heard) is displayed. This gives a good reference to see if a station
is reachable and responding.
.NH 3
ax25 irtt [<milliseconds>]
.LP
Display or set the initial value of smoothed round trip time to be used
when a new AX25 connection is created. The value is in milliseconds.
The actual round trip time will be learned by measurement once the
connection has been established.
.NH 3
ax25 kick <axcb>
.LP
Force a retransmission on the specified AX.25 control block.
The control block address can be found with the \fBax25 status\fP command.
.NH 3
ax25 maxframe [<count>]
.LP
Establish the maximum number of frames that will be allowed to remain
unacknowledged at one time on new AX.25 connections. This number cannot
be greater than 7.
Without \fBcount\fP it will display the current setting. Note that the maximum
outstaning frame count only works with virtual connections. UI frames are
not affected.
.NH 3
ax25 mycall [<ax25_addr>]
.LP
Display or set the default local AX.25 address. The standard format is used,
(eg. KA9Q-0 or WB6RQN-5).
This command must be given before any \fBattach\fP commands
using AX.25 mode are given.
.NH 3
ax25 paclen [<size>]
.LP
Limit the size of I-fields on new AX.25 connections. If IP
datagrams or fragments larger than this are transmitted, they will be
transparently fragmented at the AX.25 level, sent as a series of I
frames, and reassembled back into a complete IP datagram or fragment at
the other end of the link. To have any effect on IP datagrams,
this parameter should be less than or equal to
the MTU of the associated interface.
.NH 3
ax25 pthresh [<size>]
.LP
Display or set the poll threshold to be used for new AX.25 Version 2
connections. The poll threshold controls retransmission behavior as
follows. If the oldest unacknowledged I-frame size is less than the poll
threshold, it will be sent with the poll (P) bit set if a timeout occurs.
If the oldest unacked I-frame size is equal to or greater than the
threshold, then a RR or RNR frame, as appropriate, with the poll bit set
will be sent if a timeout occurs.
.LP
The idea behind the poll threshold is that the extra time needed to send a
"small" I-frame instead of a supervisory frame when polling after a timeout
is small, and since there's a good chance the I-frame will have to be sent
anyway (i.e., if it were lost previously) then you might as well send it as
the poll. But if the I-frame is large, send a supervisory (RR/RNR) poll
instead to determine first if retransmitting the oldest unacknowledged
I-frame is necessary; the timeout might have been caused by a lost
acknowledgement. This is obviously a tradeoff, so experiment with the
poll threshold setting. The default is 128 bytes, one half the default
value of \fBpaclen\fP.
.NH 3
ax25 reset <axcb>
.LP
Delete the AX.25 connection control block at the specified address.
.NH 3
ax25 retry [<count>]
.LP
Limit the number of successive unsuccessful retransmission attempts on
new AX.25 connections. If this limit is exceeded, link re-establishment
is attempted. If this fails \fBretry\fP times, then the connection
is abandoned and all queued data is deleted.
.NH 3
ax25 route
.LP
Display the AX.25 routing table that
specifies the digipeaters to be used in reaching a given station.
.NH 4
ax25 route add <target> [digis ... ]
.LP
Add an entry to the AX.25 routing table. An automatic \fBax25
route add\fP is executed if digipeaters are specified in an AX25 \fBconnect\fP
command, or if a connection is received from a remote station via
digipeaters. Such automatic routing table entries won't override locally
created entries, however.
.NH 4
ax25 route drop <target>
.LP
Drop an entry for target from the AX.25 routing table.
.NH 4
ax25 route mode <target> [vc | datagram | interface]
.LP
Sets the mode to vc | datagram | interface for target. \fBInterface\fP is the
default for that interface. \fBVc\fP is a virtual circuit (ax25 connected mode)
and \fBdatagram\fP is unconnected mode, (AX25 UI frames).
.NH 3
ax25 status [<axcb>]
.LP
Without an argument, display a one-line summary of each AX.25 control block.
If the address of a particular control block is specified, the contents of
that control block are dumped in more detail. Note that the send queue units
are frames, while the receive queue units are bytes.
.NH 3
ax25 t3 [<milliseconds>]
.LP
Display or set the AX.25 idle "keep alive" timer. Value is in milliseconds.
.NH 3
ax25 t4 [<seconds>]
.LP
Display or set the AX.25 Link "redundancy" timer. Value is in seconds.
When no exchange has been had during this time the link is reset and closed.
.NH 3
ax25 timertype [l | e | o]
.LP
Sets or displays the type of timer used for retransmission and recovery:
\fBlinear, exponential\fP or \fBoriginal\fP.
.NH 3
ax25 version [1 | 2]
.LP
Display or set the version of the AX.25 protocol to attempt to use on
new connections. The default is 1 (the version
that does not use the poll/final bits).
.NH 3
ax25 window [<size>]
.LP
Set the number of bytes that can be pending on an AX.25 receive queue
beyond which I frames will be answered with RNR (Receiver Not Ready)
responses. This presently applies only to suspended interactive AX.25
sessions, since incoming I-frames containing network (IP, NET/ROM) packets
are always processed immediately and are not placed on the receive queue.
However, when an AX.25 connection carries both interactive
and network packet traffic, an RNR generated because of
backlogged interactive traffic will also stop network
packet traffic from being sent.
.NH 2
bbs
.LP
Enter the local bbs port (same as a telnet session to your own station).
Current commands are:
help ? <command>
area a [<area>]
bye b
connect c <node>
c <interface> <ax25_addr> [[<ax25_addr>] .... ]
download d <filename>
du <filename> (for uuencode bin file)
escape e [<escape char.]
finger f [<user>]
help h [<command>]
info i
jheard j
kill k <msg number>
list l [<msg number>]
mbusers m
nodes n <node>
operator o
ports p
read r [<msg number>]
send s[f] <usename[@hostid] [<from_addr>] [$bul_id]
send repl sr [<mgs number>]
telnet t <hostid>
upload u <filename>
verbose v <n>
what w [<directory>]
expert x
zap z <filename>
sysop @
.NH 2
bootp <subcommand>
.LP
This is a bootp server / client, included into \fBNos\fP. It is picked up
from the University of Michigan in Ann Arbor. It is included into the
sources of \fBNos\fP but is not used nor tested by me. (PA0GRI)
Its usability is fague but the discussions on tcp-group drove me
to include this for possible use of reusable addresses.
.NH 3
bootp start
.LP
Starts the bootp server.
.NH 3
bootp stop
.LP
Stops the bootp server.
.NH 3
bootp dns [<ipaddr>]
.LP
Display or set the list of domain name servers for \fBbootp\fP.
.NH 3
bootp dyip [<iface> | <iface> <ipaddr1> <ipaddr2> | <iface> off]
.LP
Display or set the interface address range. The range is between \fIipaddr1\fP
and \fIipaddr2\fP, both in dot notation.
.NH 3
bootp host [<hostaddr> <hardware type> <hardware addr> <ip addr> [boot file]]
.LP
Display or activate a bootp process. \fIHardware type\fP is netrom, ether,
macappletalk or ax25. \fIHardware addr\fP is the interface name. \fIIp addr\fP
must be in dot notation.
.NH 3
bootp rmhost <ipaddr>
.LP
Delete \fIipaddr\fP from the host table.
.NH 3
bootp homedir [<directory> | default]
.LP
Display or set the directory where the \fBbootp\fP files reside. The default
directory is bpfiles.
.NH 3
bootp defaultfile [<bootfile> | default]
.LP
Display or set the file name of the \fBbootp\fP file. The default is boot.
.NH 3
bootp logfile [<filename> | default] [on | off]
.LP
Starts or stops the logging of \fBbootp\fP requests to \fIfilename\fP or
the default file name \fIbootplog\fP.
.NH 3
bootp logscreen [on | off]
.LP
Enables or disables the logging of \fBbootp\fP to the screen.
.NH 2
bootpd
.LP
This starts the server daemon for \fBbootp\fP.
.NH 2
cd [<dirname>]
.LP
Change the current working directory, and display the new setting.
Without an argument, \fBcd\fP simply displays the current directory
without change.
The \fBpwd\fP command is an alias for \fBcd\fP.
.NH 2
close [<session>]
.LP
Close the specified session; without an argument, close the current session.
On an AX.25 session, this command initiates a disconnect. On a FTP or
Telnet session, this command sends a FIN (i.e., initiates a close) on the
session's TCP connection. This is an alternative to asking the remote
server to initiate a close (\fBQUIT\fP to FTP, or the logout command appropriate
for the remote system in the case of Telnet). When either FTP or Telnet
sees the incoming half of a TCP connection close, it automatically responds
by closing the outgoing half of the connection. Close is more graceful than
the \fBreset\fP command, in that it is less likely to leave the remote TCP in a
"half-open" state.
.NH 2
cls
.LP
Clears the current session screen (command screen).
.NH 2
comm <interface> <text-string>
.LP
The \fBcomm\fP command sends \fBtext-string\fP via \fBinterface\fP.
This can be used to send straight text to an tnc still in TAPR command mode
during \fBNos\fP startup. Note that to preserve spaces tabs etc. to include
the string between double quote characters. Aka: comm ax1 "start kiss"
.NH 2
connect <iface> <ax25_addr> [<digipeater> ... ]
.LP
Initiate a "vanilla" AX.25 session to the specified ax25_addr using the
specified interface. Data sent on this session goes out in
conventional AX.25 packets with no upper layer protocol. The de-facto
presentation standard format is used, in that each packet holds one line
of text, terminated by a carriage return. A single AX.25 connection may
be used for terminal-to-terminal, IP and NET/ROM traffic.
The three types of data being automatically separated by their
AX.25 Level 3 Protocol IDs.
.LP
Up to 7 optional digipeaters may be given; note that the word \fBvia\fP is NOT
needed. If digipeaters are specified, they are automatically added to the
AX25 routing table as though the \fBax25 route add\fP command had been given
before issuing the \fBconnect\fP command.
.NH 2
delete <filename>
.LP
The \fBfilename\fP is removed from the file system.
.NH 2
detach <iface>
.LP
Detach a previously attached interface from the system. All IP routing
table entries referring to this interface are deleted, and forwarding
references by any other interface to this interface are removed.
.NH 2
dialer <iface> [<file> [<seconds> [<pings> [<hostid>]]]]
.LP
Setup an autodialer session for the interface.
Whenever the interface is idle for the interval in <seconds>,
the autodialer will ping the <hostid>.
If there is no answer after <pings> attempts,
the autodialer will execute the special commands contained in the <dialer-file>.
.LP
If the interval in <seconds> is zero,
a previous dialer command process will be removed.
If the number of <pings> is zero,
the <dialer-file> will be executed without pinging the <hostid>.
.LP
The file may have any valid name,
and must be located in the configuration root directory
(see the \fBInstallion\fP section).
The commands in the file are described in the \fBDialer Subcommands\fP chapter.
Commands in \fBfile\fP are:
.NH 3
control <up | down>
.LP
.NH 3
send <string> [<milliseconds>]
.LP
Sends \fBstring\fP to the interface. If \fBmilliseconds\fP is given, inter
character timing is \fBmilliseconds\fP milliseconds.
.NH 3
speed <bps>
.LP
Displays or sets the current interface speed to \fBbps\fP baud.
.NH 3
status <up | down>
.LP
.NH 3
wait <milliseconds> [<string> [speed]]
.LP
Wait the amount of \fBmilliseconds\fP. If \fBstring\fP is given, incoming
characters from the interface are compared with \fBstring\fP. If an compare
is found and \fBspeed\fP is the string speed, the next numbers read from
the interface is the new baudrate used. This works like HAYES response
CONNECT 9600. The wait command could habe been "wait 10000 CONNECT speed".
This waits 10 seconds for the CONNECT response from the modem.
.NH 2
dir [<dirname>]
.LP
List the contents of the specified directory on the console. If no argument
is given, the current directory is listed. Note that this command works
by first listing the directory into a temporary file, and then creating
a \fBmore\fP session to display it. After this completes, the temporary
file is deleted.
.NH 2
disconnect [<session>]
.LP
An alias for the \fBclose\fP command (for the benefit of AX.25 users).
.NH 2
domain <subcommand>
.LP
The domain commands control and show the working of the name to internet
address mapping software. \fBNOS\fP currently only has a client with a
simple file reading local server. A real server is needed to service the
community for their growing needs.
.NH 3
domain addserver <hostid>
.LP
Add a domain name server to the list of name servers.
Note that, when this command is given in the \fBautoexec.nos\fP file
the \fBip address\fP command should given be before this command is used.
(If not, \fBNos\fP will not kow how to resolve the address, and
an answer will never be recognized, or worse: just plain hangs the system.)
.NH 3
domain cache <subcommand>
.LP
Following commands work on the domain cache. These are resource records
(see RFC 1033/1034) held in memory.
.NH 4
domain cache clean [<yes | no>]
.LP
Displays or sets the discard of expired resource records. Expired records
have their timeout value decremented to zero. Normaly resource records get
a default timeout value of 1800 seconds. After this time they are considered
"old" and if referenced again the domain name resolver should be enquired
again.
When clean is off (the default), expired records will be retained;
if no replacement can be obtained from another domain name server,
these records will continue to be used.
.LP
When clean is on, expired records will be removed from the file
whenever any new record is added to the file.
.NH 4
domain cache list
.LP
This command shows the current content of the in memory cache for resource
records.
.NH 4
domain cache size [<size>]
.LP
Display or set the nominal maximum size of the local memory cache.
The default is 20.
.LP
(Note: The cache may be temporarily larger when waiting for new records
to be written to the \fBdomain.txt\fP file.)
.NH 4
domain cache wait [<seconds>]
.LP
Display or set the interval in seconds to wait for additional activity
before updating the \fBdomain.txt\fP file. The default is 300 seconds
(5 minutes).
.NH 3
domain dropserver <hostid>
.LP
Remove a domain name server from the list of name servers.
You are warned when you delete the last name server.
.NH 3
domain listservers
.LP
List the currently configured domain name servers, along with statistics
on how many queries and replies have been exchanged with each one,
response times, etc.
.NH 3
domain maxwait [<timeout>]
.LP
This sets a timeout value (1 to 255 seconds) to a query or domain name server.
This is not set for a already defined server but will be used for a newly
defined name server. Also the value is used for domain nslookups.
Note that name servers can have (PC based) trouble finding records in an
large database. The default is set to 30 seconds.
.NH 3
domain retry [<retries>]
.LP
The retry value (number) limits the number of queries send out to
remote domain name resolvers before giving up and telling you that
host xyzzy.ampr.org does not exist. The total time lost with a query
is retries * timeout * number of domain servers defined.
.NH 3
domain suffix [<domain suffix> | none]
.LP
Display or specify the default domain name suffix to be appended to
a host name when it contains no periods. For example, if the suffix is
set to \fBampr.org.\fP and the user enters \fBtelnet ka9q\fP, the domain
resolver will attempt to find \fBka9q.ampr.org.\fP. If the host name being
sought contains one or more periods, however, the default suffix is NOT
applied if the last part of the name is less than 5 characters and contains
only letters; e.g.,
\fBtelnet foo.bar\fP would NOT be turned into \fBfoo.bar.ampr.org.\fP.
\fBtelnet foo.ka9q\fP will be turned into \fBfoo.ka9q.ampr.org.\fP.
Note that a trailing dot (.) is required for the suffix.
If the suffix is the string \fBnone\fP (without trailing period) the current
suffix is cleared and forgotten.
.NH 3
domain trace [on | off]
.LP
Display or set the flag controlling the tracing of domain server
requests and responses. Trace messages will be seen only if a domain name
being sought is not found in the local cache file, \fBdomain.txt\fP.
.NH 3
domain translate [off | on]
.LP
Display or set the flag that controls the translation of ip adress in
dot notation into symbolic names. The translation process makes heavely
use of reverse domain name lookups. Do not set this flag unless you have
a good and fast connection to a domain name server or have a fast
domain.txt handler and domain.txt contains all IN-ADDR.ARPA. records
you ever wanted.
.NH 3
domain verbose [off | on]
.LP
Display or set the flag controlling the return of a full name (true) or
only the first name (dot delimiter) (false). This is for IP address to
name translation only.
.NH 3
domain xyzzy
.LP
This is (when spelled fully) a magic word to enable domain queries to outside
domain servers when reading commands from the startup file. This should only
be used by those who have reliable access to a domain name server.
.NH 2
drsistat
.LP
Shows the statistics for all configured drsi boards.
.NH 2
dump <hex-address | .> [decimal-range]
.LP
The dump command shows memory in hex and ascii. Hex-address is a 32 bit value
for a PC split into page address and page offset. A splitting colon is not
used nor accepted. If decimal-range is not given , 128 bytes are displayed.
\fBdump .\fP displayes memory starting at the end of a previous dump command.
.NH 2
echo [accept | refuse]
.LP
Display or set the flag controlling client Telnet's response to a
remote WILL ECHO offer.
.LP
The Telnet presentation protocol specifies that in the absence of a negotiated
agreement to the contrary, neither end echoes data received from the other.
In this mode, a Telnet client session echoes keyboard input locally and nothing
is actually sent until a carriage return is typed. Local line editing is also
performed: backspace deletes the last character typed, while control-U deletes
the entire line.
.LP
When communicating from keyboard to keyboard the standard local echo mode is
used, so the setting of this parameter has no effect. However, many
timesharing systems (eg. UNIX) prefer to do their own echoing of typed input.
(This makes screen editors work right, among other things). Such systems send
a Telnet WILL ECHO offer immediately upon receiving an incoming Telnet
connection request. If \fBecho accept\fP is in effect, a client Telnet
session will
automatically return a DO ECHO response. In this mode, local echoing and
editing is turned off and each key stroke is sent immediately (subject to the
Nagle tinygram algorithm in TCP). While this mode is just fine across an
Ethernet, it is clearly inefficient and painful across slow paths like packet
radio channels. Specifying \fBecho refuse\fP causes an incoming WILL ECHO
offer to be answered with a DONT ECHO; the client Telnet session remains
in the local echo mode. Sessions already in the remote echo mode are
unaffected. (Note: Berkeley Unix has a bug in that it will still echo input
even after the client has refused the WILL ECHO offer. To get around this
problem, enter the \fBstty -echo\fP command to the shell once you have
logged in.)
.NH 2
eol [unix | standard]
.LP
Display or set Telnet's end-of-line behavior when in remote echo mode.
In standard mode, each key is sent as-is. In unix mode, carriage returns
are translated to line feeds. This command is not necessary with all UNIX
systems; use it only when you find that a particular system responds to
line feeds but not carriage returns. Only SunOS release 3.2 seems to
exhibit this behavior; later releases are fixed.
.NH 2
escape [<char>]
.LP
Display or set the current command-mode escape character in hex.
On the PC, the escape character is default ^]. The alternate escape key is F10
unless F10 is redefined with \fBfkey\fP.
.NH 2
etherstat
.LP
Display 3-Com Ethernet controller statistics (if configured).
.NH 2
exit
.LP
Exit the \fInos\fP program and return to MS-DOS.
.NH 2
finger <user@hostid> | <@hostid>
.LP
Issue a network finger request for user \fBuser\fP at host \fBhostid\fP. This
creates a client session which may be interrupted, resumed, reset, etc,
just like a Telnet client session. If only \fB@hostid\fP is given, all
users on that host are identified.
.bp
.NH 2
fkey [<number> [<string>]]
.LP
Fkey displays or sets values for the programmable keys on the PC keyboard.
\fBfkey\fP alone gives a display of all remapable keys and their number.
\fBfkey number\fP displays the current value for that key.
\fPfkey number string\fP assigns string to that key. Control characters
can be created by prefixing then with an ^ character. A cr is ^M.
To insert an ^ in the string 2 ^'s next to each other are needed.
Following is the map of keys and their number. F1 is function key 1.
Sf1 is Shift function key 1. Cf1 is Control function key 1. Af1 is
Alt function key 1. Etc. The right most row is the numeric keypad.
key number key number key number key number key number
f1 59 sf1 84 cf1 94 af1 104 pgup 73
f2 60 sf2 85 cf2 95 af2 105 pgdn 81
f3 61 sf3 86 cf3 96 af3 106 home 71
f4 62 sf4 87 cf4 97 af4 107 end 79
f5 63 sf5 88 cf5 98 af5 108 arup 72
f6 64 sf6 89 cf6 99 af6 109 ardn 80
f7 65 sf7 90 cf7 100 af7 110 ar l 75
f8 66 sf8 91 cf8 101 af8 111 ar r 77
f9 67 sf9 92 cf9 102 af9 112 ins 82
f10 68 sf10 93 cf10 103 af10 113 del 83
.br
The mapping is taken to look like a vt100 / ansi keyboard.
Currently assigned value strings for following keys:
number string key
59 "\033OP" /* F1 */
60 "\033OQ" /* F2 */
61 "\033OR" /* F3 */
62 "\033OS" /* F4 */
71 "\010" /* home*/
72 "\033[A" /* up arrow*/
73 "\025" /* pgup */
75 "\033[D" /* left arrow */
77 "\033[C" /* right arrow */
79 "\005" /* end */
80 "\033[B" /* down arrow */
81 "\012" /* pgdn */
82 "\001" /* ins */
83 "\0177" /* del */
.bp
.NH 2
ftp <hostid>
.LP
Open an FTP control channel to the specified remote host and enter converse
mode on the new session. Responses from the remote server are displayed
directly on the screen. See the\fBFTP Subcommands\fP chapter for descriptions
of the commands available in a FTP session.
.NH 2
ftype [ascii | binary | image | logical <size>]
.LP
This command displays or sets the default start file mode (ascii or binary)
for ftp transfers. If ftype binary or image is given the next ftp session
started will be in binary type. No binary command is needed once the session
is started. In case of logical, the "word" size is set to \fBsize\fP.
.NH 2
help
.LP
Display a brief summary of top-level commands.
.NH 2
hop <subcommands>
.LP
These commands are used to test the connectivity of the network.
.NH 3
hop check <hostid>
.LP
Initiate a \fIhopcheck\fP session to the specified host. This uses a series
of UDP "probe" packets with increasing IP TTL fields to determine the
sequence of gateways in the path to the specified destination. This
function is patterned after the UNIX \fBtraceroute\fP facility.
.LP
ICMP message tracing should be turned off before this command is
executed (see the \fBicmp trace\fP command).
.NH 3
hop maxttl [<hops>]
.LP
Display or set the maximum TTL value to be used in hop check sessions.
This effectively bounds the radius of the search.
.NH 3
hop maxwait [<seconds>]
.LP
Display or set the maximum interval, in seconds, that a hopcheck session
will wait for responses at each stage of the trace. The default is 5 seconds.
.NH 3
hop queries [<count>]
.LP
Display or set the number of UDP probes that will be sent at each stage
of the trace. The default is 3.
.NH 3
hop trace [on | off]
.LP
Display or set the flag that controls the display of additional information
during a hop check session.
.NH 2
hostname [<name>]
.LP
Display or set the local host's name. By convention this should be the same
as the host's primary domain name. This string
is used only in the greeting messages
of the various network servers;
note that it does NOT set the system's IP address.
.LP
If <name> is the same as an <iface> (see the \fBAttach commands\fP chapter),
this command will search for a CNAME domain resource record
which corresponds to the IP address of the <iface>.
.NH 2
hs
.LP
Display statistics about the HS high speed HDLC driver (if configured
and active).
.NH 2
icmp <subcommand>
.LP
These commands are used for the Internet Control Message Protocol service.
.NH 3
icmp echo [on | off]
.LP
Display or set the flag controlling
the asynchronous display of ICMP Echo Reply packets.
This flag must be on for one-shot pings to work (see the \fBping\fP command.)
.NH 3
icmp status
.LP
Display statistics about the
Internet Control Message Protocol (ICMP), including the number of ICMP
messages of each type sent or received.
.NH 3
icmp trace [on | off]
.LP
Display or set the flag controlling
the display of ICMP error messages. These informational
messages are generated by Internet routers in response to routing,
protocol or congestion problems. This option should be turned
off before using the \fBhop check\fP facility because it
relies on ICMP Time Exceeded messages, and the asynchronous
display of these messages will be mingled with \fBhop check\fP command output.
.NH 2
ifconfig
.LP
Display a list of interfaces, with a short status for each.
.NH 3
ifconfig [<iface> [[[ <subcommand> <param>] <subcommand> <param>] .... ]
.LP
When only iface is given, a extended interface status is displayed.
Multiple subcommand / parameter can be put on one line.
.NH 3
ifconfig <iface> broadcast <addr>
.LP
Set the broadcast address of interface iface to \fBaddr\fP.
\fBAddr\fP can eighter be an ax25_addr or an ether_addr, depending
on the interface type, with 1's in the host part of the address.
This is related to the \fBnetmask\fP sub-command.
See also the \fBarp\fP command.
.NH 3
ifconfig <iface> description ["description"]
.LP
This command sets the interface description to the string specified. If no
string is supplied, the current description is cleared. The description
is displayed with the \fBifconfig iface\fP command (no parameters)
and with the mailbox commands.
.NH 3
ifconfig <iface> encapsulation <slip | ax25 | ether | encap | ppp>
.LP
Sets the encapsulation for interface iface to slip / ax25 / ether / encap / ppp.
.NH 3
ifconfig <iface> forward <iface-2>
.LP
When a forward is defined, all output for interface \fBiface\fP is redirected to
the interface directed by \fBiface-2\fP.
To remove the forward, set <iface-2> to <iface>.
.NH 3
ifconfig <iface> ipaddress <addr>
.LP
Set the IP address to \fBaddr\fP for this interface. This might be nessesary
when a system acts as a gateway. Like an system with IP address 44.137.1.8
has an Internet access via its ethernet. The Internet IP address could be
129.179.122.10. An \fBifconfig ec0 ipaddress 129.179.122.10\fP sets the
correct address for that interface. Now routing to that system will work.
(Note that the 44.x.x.x address is NOT connected to the Internet.)
See also the \fBhostname\fP and \fBip address\fP commands.
.NH 3
ifconfig <iface> linkaddress <hardware-dependant>
.LP
Set the hardware dependant address for this interface.
For AX.25 this can be the callsign, for ethernet a new ethernet address.
.NH 3
ifconfig <iface> mtu <param>
.LP
Set the maximum transfer unit to \fBparam\fP octeds (bytes).
See the \fBSetting ... MTU, MSS and Window\fP chapter for more information.
.NH 3
ifconfig <iface> netmask <address>
.LP
Set the sub-net mask for this interface.
The <address> takes the form of an IP address
with 1's in the network and subnet parts of the address,
and 0's in the host part of the address.
Sample: ifconfig ec0 netmask 0xffffff00 for a class C network (24 bits).
This is related to the \fBbroadcast\fP sub-command.
See also the \fBroute\fP command.
.NH 3
ifconfig <iface> rxbuf <size>
.LP
Set the receive buffer size.
.NH 2
info
.LP
\fBInfo\fP gives information about the version of \fBNos\fP currently
running and its buildin configuration. The configuration info is build
with defines in config.h in the source distribution. That way it
gives automatically correct configuration information.
.NH 2
ip <subcommand>
.LP
These commands are used for the Internet Protocol service.
.NH 3
ip access <permit|deny|delete> <dest addr>[/<bits>] <ifname> [lowport [higport]]
.LP
Set or display access control for IP routing functions. This command implements
router access functions to \fBNos\Fp. Permit enables dest-addr packets to be
routed via ifname. Deny disables those. If lowport is not given, all ports
are assumed. If only lowport is given, that port is only checked for permission
If lowport and highport are given, that is the range of ports permitted/denied.
Dest-addr can be the word all for all addresses possible.
Lowport can be the word none for all ports.
The ip access delete must match a previous defined permit or deny to be able
to delete that definition.
Some samples:
ip access permit 44/8 ax0
ip access deny all ax0 1 1023
ip access permit all ax0
If no access list is created, all interfaces might carry all types. If an access
control is defined for an interface there must be an permit defined for that
interface to allow trafic. Thus an partial denyal without an permit is an
complete denyal.
.NH 3
ip address [<hostid>]
.LP
Display or set the default local IP address. This command must be given before
an \fBattach\fP command if it is to be used as the default IP address for
the interface.
.NH 3
ip rtimer [<seconds>]
.LP
Display or set the IP reassembly timeout. The default is 30 seconds.
\fBValue\fP is in seconds.
.NH 3
ip status
.LP
Display Internet Protocol (IP) statistics, such as total packet counts
and error counters of various types.
.NH 3
ip ttl [<hops>]
.LP
Display or set the default time-to-live value placed in each outgoing IP
datagram. This limits the number of switch hops the datagram will be allowed to
take. The idea is to bound the lifetime of the packet should it become caught
in a routing loop, so make the value slightly larger than the number of
hops across the network you expect to transit packets.
The default is set at compilation time to the official recommended value
for the Internet.
.NH 2
isat [on | off]
.LP
Display or set the AT flag.
Normaly this flag is set when an interface is
attached with an interrupt of 8 or higher. This is to signal that the second
interrupt controllerc in a AT also needs an return of interrupt signal.
If an AT type clock is in use, this command will allow
measurement of time in milliseconds, rather than clock ticks
(55 milliseconds per clock tick).
During I/O initialisation this flag is set if the monitor prom
has the standard byte 0xfc at address f000:fffe.
.NH 2
kick [<session>]
.LP
Kick all sockets associated with a session;
if no argument is given, kick the current session.
Performs the same function as the \fBax25 kick\fP and \fBtcp kick\fP commands,
but is easier to type.
.NH 2
lock [password <"password string">]
.LP
Locks the keyboard or defines a password string.
If \fBpassword\fP is given then <password> is saved as the unlock string.
If no parameters are supplied, the keyboard becomes locked when a password
was specified earlier. If the keyboard is locked, the password is requested.
If a correct password is supplied, the keyboard becomes unlocked.
The setting of the password and locking of the keyboard can only been done by
the system console keyboard or \fBautoexec.nos\fP startup file.
The password can not been shown.
.NH 2
log [stop | <filename>]
.LP
Display the current log filename or set the \fBfilename\fP for logging
server sessions. If \fBstop\fP is given as the argument,
logging is terminated (the servers themselves are unaffected).
If a file name is given as an argument, server session log
entries will be appended to it.
.NH 2
lzw [<subcommand>]
.LP
Lzw is the data compression capability on some sockets. This command set
defines or changes their definition. Normaly leave this set default.
.NH 3
lzw mode <fast|compact>
.LP
Displays or sets the compression methode used on data compression for specific
sockets. Currently SMTP can use compression.
.NH 3
lzw bits <number>
.LP
Displays or sets the number of bits used for the compression size. The more
bits defined the larger the table space needed. Range is 9 to 16.
.NH 2
mail
.LP
This command will start a shell escape command. The mailer used is
defined with the DOS environment variable MAILER, wich defaults to
\fBBM.EXE\fP.
.NH 2
mbox [<subcommand>]
.LP
Display the status of the mailbox server system (if configured).
.NH 3
mbox attend [yes | no]
.LP
Displays or sets the attended flag on. This is used to announce in the mailbox
if the station mannager is willing to attend his station (chat).
.NH 3
mbox expert <on|off>
.LP
Displays or set the level expected of a mailbox user. When set (s)he gets a
short ( > ) prompt. When not set a long prompt is send with the first letter of
each mailbox command as prompt. The user can then set Xpert mode
to get the short prompt.
.NH 3
mbox fwdinfo ["forward info"]
.LP
Displays or sets the mailbox forward info to be included in the R: line for
forwarded BBS bulletins.
An empty string ("") as info clears the info field.
.DS I 0
.ft CW
Sample: netrom fwdinfo "HNLNET BBS"
.ft P
.DE
Will show '[HNLNET BBS]' in the R: line.
.NH 3
mbox haddress ["home-address"]
.LP
Displays or sets the home address field to be included in the R: line for
forwarded BBS bulletins.
An empty string ("") clears the field.
.DS I 0
.ft CW
Sample: netrom haddress "#CRV.OR.USA"
.ft P
.DE
Will show '@WG7J#CRV.OR.USA' in the R: line. (when ax mycall is WG7J)
.NH 3
mbox jumpstart <on|off>
.LP
Displays or sets the mailbox jumpstart code. When set and an "known" node
connects to the mailbox, no extra line needs to be send to activate the
mailbox but the prompt is send directly. Warning: When set, it takes a
while to hear all nodes and an AX25 connect could have an wrong start
as there is no wait for a level 3 protocol check. Especialy RSPF in
virtual mode could course serious problems.
.NH 3
mbox kick
.LP
To kick the mailbox back in activity after retry timeouts.
.NH 3
mbox maxmsg
.LP
To display or set the maximum number of messages per area when an notesfile
is shown to a user. This reserves lots of memory for every mailbox session.
.NH 3
mbox motd ["message string"]
.LP
Display ot set the mailbox welcoming Message Of The Day.
.NH 3
mbox nrid <on|off>
.LP
DIsplays or sets the Netrom id flag. When set the node id is displayed
on the prompt line.
.NH 3
mbox operator [<address>]
.LP
The operator command shows or sets an alternate address for the control
operator. When set and mbox attend is off or the user is "shelled out"
and an mbox user requests a Operator command, the ttylink session is
redirected to the address specified. Else it works as before that the
mbox user is notified with "Unattended". When the system pointed to by
address has also set its attended to off, then an Unattended is replied
with as well (but generated by the remote station). This is a "flaky"
way of having an attended unattended system.
.NH 3
mbox password <"password string">
.LP
Sets a password string to be presented to Sysops entering that mode in the
mailbox (using the @ command and having that priviledge set to their login
name/password in \fBf/ftpusers\fP). When a password is defined (max 30 characters) then (s)he is prompted with 5 numbers before letting her/him in.
The five numbers represent the 5 character locations in the string defined,
whereby the first character is number 0.
Multiple lines of 5 characters can be send to fool "snoopers".
The end of password sending is signaled with an empty line. If there was
a good response, sysop mode is entered.
The setting of the password can only been done by the system console or
\fBautoexec.nos\fP startup file. The password can not been shown.
.NH 3
mbox qth ["qth info"]
.DS I 0
.ft CW
Sample: netrom qth "Driebruggen, NL"
.ft P
.DE
.LP
Displays or sets the info for qth in the R: line for forwarded BBS messages.
.NH 3
mbox secure <yes|no>
.LP
Displays or sets the security option for mailbox gateway users. If set
users comming in via telnet to the bbs are not allowed to use the gateway.
If not set anybody can use the gateway. (Note: No check for Bozo's).
Also the mailbox send command is disabled except for ax25 and netrom connects.
.NH 3
mbox smtptoo <yes|no>
.LP
Displays or sets the flag to include SMTP headers in BBS messages. When set
SMTP headers are included in messages. When not set not included.
.NH 3
mbox status
.LP
An alias for just entering mbox on the prompt line.
.NH 3
mbox timer [<seconds>]
.LP
Display the current interval and time remainig or
set the mailbox forwarding timer.
.NH 3
mbox tiptimeout
.LP
Displays or sets the timeout value for tip connection timeout. After
\fBtimeout\fP seconds of no activity the connection is closed.
.NH 3
mbox trace [yes | no]
.LP
Displays or sets mailbox forward trace code flag. The trace is very minimal
but every one working on mailbox/forward code now has a common flag \fBMtrace\fP.
.NH 3
mbox utc <offset>
.LP
Displays or sets the offset you are according to ZULU time. Positive and
negative numbers are supported and full leap year and month calculation
are done. This is used by the mailbox forwarding to give a standard time
in the R: line.
.NH 3
mbox zipcode zip
.LP
Displays or sets the info for the zip field for R: line BBS header lines.
This field is max 7 characters long as released. For USA the zip is only
6 numbers long. Netherlands has 4 figures a space and 2 letters. Guess
every PTT wants something they "invented" their own.
.DS I 0
.ft CW
Sample: netrom zip "3465 TJ" or: netrom zip 54551
.ft P
.DE
.NH 2
memory <subcommand>
.LP
These commands are used for memory allocation.
.NH 3
memory debug [on|off]
.LP
Displays or sets the memory allocator debug flag. If set debug information
is written to the log file containing most flags and parameters from
the memory allocation routines.
.NH 3
memory efficient [yes | no]
.LP
Displays or sets the search algorithm for buffer memory. When set the
search is always started from the beginning of the free list. This is slower
but keeps memory fragmentation to a minimum. When clear
search is started on the end, accounting for more memory fragmentation
but keeping speed. Roumers state that you should include this command as
the first line in \fBautoexec.nos\fP.
The current releases default sets efficient to yes.
.NH 3
memory freelist
.LP
Display the storage allocator free list. Each entry consists of a
starting address, in hex, and a size, in decimal bytes.
.NH 3
memory ibufsize [<size>]
.LP
Display or set the size of the buffers in the interrupt buffer pool.
The size should be set to the largest type of buffer plus a header size of 22.
For example: If your ax25 is the omly interface and a packet length of 256
is defined, the ibufsize should be 256 + 10 * 6 + 22. The 10 * 6 is the
ax25 header (source , destination and 8 digipeaters).
.NH 3
memory minheap [<number>]
.LP
Displays or sets the minimum heap size to be allocated before shell escaping
to DOS. This assures a free heap so that \fBNos\fP can run trough without
gettig short on memory for a while.
.NH 3
memory nibufs [<number>]
.LP
Display or set the number of interrupt buffer pool buffers.
If the number of buffers is set, the statistics in the \fBmemory status\fP
display are reset for number of interrupt buffer fails. The minimum available
value is set to the requested number of buffers.
A roule of thumb for the number of buffers is to watch the statistics and
keep a minimum of 2 free buffers. Increase or decrease as required.
.NH 3
memory sizes
.LP
Display a histogram of storage allocator request sizes. Each histogram
bin is a binary order of magnitude (i.e., a factor of 2).
.NH 3
memory status
.LP
Display a summary of storage allocator statistics. The first line
shows the base address of the heap, its total size, the amount of heap
memory available in bytes and as a percentage of the total heap size,
and the amount of memory left over (i.e., not placed on the heap at startup)
and therefore available for \fBshell\fP subcommands.
.LP
The second line shows the total number of calls to allocate and free blocks
of memory, the difference of these two values (i.e., the number of allocated
blocks outstanding), the number of allocation requests that were denied
due to lack of memory, and the number of calls to free() that attempted to
free garbage
(eg. by freeing the same block twice or freeing a garbled pointer).
.LP
The third line shows the garbage collection status.
Garbage collection is a separate process running every second. If memory
is "low" garbage collection routines are called in "Red alert" mode, else
in "Yellow alert".
.LP
The fourth line shows the number of calls to malloc and free that occurred
with interrupts off. In normal situations these values should be zero.
The fourth line shows statistics for the special pool of fixed-size buffers
used to satisfy requests for memory at interrupt time. The variables
shown are the number of buffers currently in the pool, their size, and
the number of requests that failed due to exhaustion of the pool.
.LP
The fifth line shows the current setting of the interrupt buffer pool,
its minimal value and the number of no buffers available.
These statistics are reset when a \fBmemory nibufs <number>\fP command
is given.
.NH 3
memory thresh [<size>]
.LP
Displays or sets the memory threshold size in bytes. If memory gets below
this value , no more new sessions are started or accepted.
.NH 2
mkdir <dirname>
.LP
Create a sub-directory in the current working directory.
.NH 2
mode <iface> [vc | datagram]
.LP
Control the default transmission mode on the specified AX.25 interface.
In \fBdatagram\fP mode, IP packets are encapsulated in AX.25 UI frames and
transmitted without any other link level mechanisms, such as connections
or acknowledgements.
.LP
In \fBvc\fP (virtual circuit) mode, IP packets are encapsulated in AX.25 I
frames and are acknowledged at the link level according to the AX.25
protocol. Link level connections are opened if necessary.
.LP
In both modes, ARP is used to map IP to AX.25 addresses. The defaults
can be overridden with the type-of-service (TOS) bits in the IP header.
Turning on the "reliability" bit causes I frames to be used, while
turning on the "low delay" bit uses UI frames. (The effect of turning
on both bits is undefined and subject to change).
.LP
In both modes, IP-level fragmentation is done if the datagram is larger
than the interface MTU. In virtual circuit mode, however, the resulting
datagram (or fragments) is further fragmented at the AX.25 layer if it
(or they) are still larger than the AX.25 \fBpaclen\fP parameter. In AX.25
fragmentation, datagrams are broken into several I frames and reassembled
at the receiving end before being passed to IP. This is preferable to
IP fragmentation whenever possible because of decreased overhead (the IP
header isn't repeated in each fragment) and increased robustness (a
lost fragment is immediately retransmitted by the link layer).
.NH 2
more <file> [<file> ...]
.LP
Display the specified file(s) a screen at a time. To proceed to the next
screen, press the space bar; to cancel the display, hit the 'q' key.
A CR advances a line.
The \fBmore\fP command creates a session that you can suspend and resume
just like any other session.
.NH 2
motd [<"message of the day">]
.LP
Display the current message or sets the welcome message to the defined string.
.NH 2
multitask [on | off]
.LP
Displays or sets the multi task flag. If set \fBNos\fP continues to service
its interrupts and handling of normal operation when put in the background
by executing a shell escape. Some programs do not like to miss valuable
time taken away this way and weard results can happen. Clearing the
flag stops all activiity fron \fBNos\fP when put in the background.
.NH 2
netrom <subcommand>
.LP
.NH 3
netrom acktime [<milliseconds>]
.LP
Displays or sets the ack delay timer, similary to ax25 t2.
.NH 3
netrom alias <alias>
.LP
This sets the \fBnetrom\fP alias for this station. Other stations can connect
to the ax25 callsign and to the Netrom alias (when set). The alias is
broadcasted with a Netrom broadcast.
.NH 3
netrom bcnodes <iface>
.LP
Initiates an immediate broadcast of nodelist on \fBiface\fP.
.NH 3
netrom call <call>
.LP
Displays or sets the call to be used by the netrom interface. Note: this is a
shortcut for the "ifconfig netrom linkaddress call" command.
.NH 3
netrom connect <node>
.LP
Start a connection to \fBnode\fP.
.NH 3
netrom choketime [<milliseconds>]
.LP
Display or set the time breaking a send choke. Choke is the term netrom
uses for flow control conditions.
.NH 3
netrom derate [on | off]
.LP
Display or set automatic derating of netrom routes on link failure.
.NH 3
netrom interface <iface> <quality>
.LP
Define a netrom interface \fBiface\fP.
The quality can be between 1 and 255. For compatibility with other
implementations set this to 192 normaly. A check is made that the
interface is of type CL_AX25, meaning NETROM capable media.
Note: the alias is not specified on this line anymore. Use netrom alias command.
.NH 3
netrom irtt [<milliseconds>]
.LP
Display or set the initial round trip time.
.NH 3
netrom kick <&nrcb>
.LP
Give the control block a kick to get activity going again.
.NH 3
netrom load [<filename>]
.LP
When fully implemented reloads a saved netrom node list to continue from
where you left when you saved the list. All entry's read are time decremented
as if normal time just went on. If it took some time (\fBobsotimer\fP * x)
your list could be empty as they all timed out.
.NH 3
netrom minquality [<value>]
.LP
Display or set the minimum quality for recognizing a node entry.
Entry's below this value are not considered valuable for usage.
.NH 3
netrom nodefilter <subcommand>
.LP
Node filtering.
.NH 4
netrom nodefilter add <neighbor> <iface>
.LP
Allow \fBneighbor\fP to give us node updates.
.NH 4
netrom nodefilter drop <neighbor> <iface>
.LP
Disallow \fBneighbor\fP to give us node updates.
.NH 4
netrom nodefilter mode [none | accept | reject]
.LP
Display or set the initial filter schema. \fBNone\fP accepts all.
\fBAccept\fP,accepts only from nodes defined in \fBnetrom nodefilter add\fP lists.
\fBReject\fP,no accepts from nodes defined in \fBnetrom nodefilter add\fP lists.
.NH 3
netrom nodetimer [<seconds>]
.LP
Display or set the interval our node list is transmitted.
.NH 3
netrom obsotimer [<seconds>]
.LP
Display or set the time a node quality gets decremented.
.NH 3
netrom promiscious [off | on]
.LP
Enables nodes with a higher quality than defined with minquality.
If on, all nodes are received, independent od nodefilter.
.NH 3
netrom qlimit [<bytes>]
.LP
Display or set the maximum queue limit for chat. Similar to ax25 window.
.NH 3
netrom reset <&nrcb>
.LP
Remove the control block. You can find the control block with \fBsocket\fP.
.NH 3
netrom retries [<value>]
.LP
Display or set the maximum number of retries on connect, disconnect or data.
.NH 3
netrom route <subcommand>
.LP
Netrom routing commands.
.NH 4
netrom route add <alias> <destination> <iface> <quality> <neighbor>
.LP
Add a netrom route.
.NH 4
netrom route drop <destination> <neighbor> <iface>
.LP
Delete a netrom route.
.NH 4
netrom route info <destination>
.LP
Display the route it would take to get to \fBdestination\fP.
.NH 3
netrom status
.LP
Displays all netrom connections.
.NH 3
netrom save [<filename>]
.LP
When fully implemented, saves the current netrom node list in memory to
/netrom.sav or filename, if given.
.NH 3
netrom timertype [exponential | linear]
.LP
Displays or sets the type of backoff.
.NH 3
netrom ttl [<hops>]
.LP
Display or set the maximum number of hops a frame might hop before discarded,
if it did not reach its destination before.
.NH 3
netrom user [<username>]
.LP
Display or set our netrom user name. This is used on outgoing connects.
.NH 3
netrom verbose [off | on]
.LP
Display or set the verbose flag. If set all nodes known to us are transmitted
each time the \fBnodetimer\fP expires. If off, only your stations node ident
is send out.
.NH 3
netrom window [<frames>]
.LP
Display or set the size of the sliding window. This is the largest send and
receive window we might negotiate.
.NH 2
nntp <subcommand>
.LP
Network news transfer protocol has the following subcommands:
.NH 3
nntp addserver <nntpserver> <seconds> [<range>] [<groups>]
.LP
Add a nntp news server to quiry every \fBseconds\fP interval for new
articles specified by the nntp groups command. Range can be a limit in
time to query like \fInntp addserver someserver 600 22:00-23:00\fP,
to only query the server between 10 and 11pm.
Multiple nntp add can be used co concatenate groups (up to 512 bytes)
The interval \fBseconds\fP can be set to 0, so that normaly the nntp client
does not query the server regulary but an \fInntp kick nntpserver\fP can be
used to start a session.
.NH 3
nntp directory <directory>
.LP
Show or set default directory for spooling news.
This is not the control directory but the (alternate) place to spool
articles to.
.NH 3
nntp dropserver <nntpserver>
.LP
.NH 3
nntp groups <group> [<group> ...]
.LP
Set or display currently set newsgroups.
.NH 3
nntp kick <nntpserver>
.LP
Kick the client to get in touch with the named server.
.NH 3
nntp listservers
.LP
Lists the curently defined servers.
.NH 2
nntp quiet [yes | no]
.LP
Shows or sets the flag controlling the display of newly received nntp
news messages. The smpt quiet fag controls the beep following the message.
If both are off, nothing is shown, keeping the display from getting hung
on -more- when running unattended.
.NH 2
nntp trace <level>
.LP
Sets or shows the current trace level for the nntp client.
0 No tracing
1 (default) displays serious errors.
2 displays as 1 and transient errors.
3 displays as 2 and session progress.
4 displays as 3 and actual received articles.
5 displays errors.
.NH 2
nrstat
.LP
Displays the netrom interface statistics.
.NH 2
param <iface> [<param> ...]
.LP
Invoke a device-specific control routine. On a KISS TNC
interface, this sends control packets to the TNC. Data bytes are
treated as decimal. For example, \fBparam ax0 1 255 \fP will set the keyup
timer (type field = 1) on the KISS TNC configured as ax0 to 2.55 seconds
(255 x .01 sec). On a SLIP interface, the \fBparam\fP command allows the baud
rate to be read (without arguments) or set. On asy lines DTR and RTS can be
(and possibly should be) set with param iface dtr 1 and param iface rts 1.
The implementation of this
command for the various interface drivers is incomplete and subject to
change.
.br
Current commands defined are:
0 Data - Normal KISS data
1 TxDelay - set TX delay for TNC
2 Persist - set persistence delay for TNC
3 Slottime - set slottime delay for TNC
4 TxTail - set TX tail delay for TNC
5 Fulldup - set Full duplex for TNC
6 Hardware - Hardware dependent
7 TxMute -
8 DTR - 0 = down, 1 = up
9 RTS - 0 = down, 1 = up
10 Speed - baud rate
11 Enddelay -
12 Group -
13 Idle -
14 Min -
15 Maxkey -
16 Wait -
17 Parity - 0 = none, 1 = even, 2 = odd parity
129 Down -
130 Up -
254 Return2 - Some tnc's need this
255 Return - Reset a tnc from KISS into command mode
.NH 2
ping <hostid> [<length> [<milliseconds> [<incflag>]]]
.LP
Ping (send ICMP Echo Request packets to) the specified host. By default
the data field contains only a small timestamp to aid in determining
round trip time; if the optional \fBlength\fP argument is given,
the appropriate number of data bytes (consisting of hex 55) are added to the
ping packets.
.LP
If \fBmilliseconds\fP is specified, pings will be repeated indefinitely
at the specified number of milliseconds;
otherwise a single, "one shot" ping is done.
Responses to one-shot pings appear asynchronously on the command screen,
while repeated pings create a session that may be suspended and resumed.
Pinging continues until the session is manually reset.
.LP
The \fBincflag\fP option causes a repeated ping to increment the
target IP address for each ping; it is an experimental feature for searching
blocks of IP addresses for active hosts.
.NH 2
pop <subcommand>
.LP
The \fBpop\fP client provides an automatic interface to the \fBpop\fP
server that is totaly transparen to the user; all that the user needs to do
is to set a few key parameters and the client will take it from there,
appart from registring with the server station manager for setting up
the user data. (see \fIpop userdata\fP command.
To read more about \fIpop\fP, read rfc937.
The following paragraph describe the \fBpop\fP subcommands.
.NH 3
pop mailbox [<name>]
.LP
Show the defined name or sets the name to \fBname\fP for POP mail queries to
the mailhost. The server keeps the mail in the mailbox \fBname\fP located
in /spool/mail/\fBname\fP.txt. This is a mandatory parameter.
.NH 3
pop mailhost [<ipaddr>]
.LP
Show the currently defined host address for a \fBpop\fP server or sets the
IP address to the system named \fBipaddr\fP for POP connections.
This is a mandatory parameter.
.NH 3
pop kick
.LP
Start a POP connection now. (one shot connection)
.NH 3
pop timer [<seconds>]
.LP
Show the current setting and time remaining untill next server enquiry or
when \fBseconds\fP is given, defines the interval that a \fBpop\fP connection
is started every <seconds> to retrieve mail from the server system.
When the timer is not set the client is only started with a \fIpop kick\fP
command.
.NH 3
pop userdata <name> <password>
.LP
Sets up the userdata used for validation on the POP server system. Note
that <name> and <password> are case sensitive. When only pop userdata
is entered to show the values only the <name> is shown. (ultimate in
security, if you realy want to see the password look in the "ether").
Remember: the name and password should also be defined at the server
site in the \fIpopusers\fP file.
.NH 2
popmail <subcommand>
.LP
\fBpopmail\fP is a newer implementation of the pop client/server. It can
handle both pop2 and pop3 type pop client/servers. For functionality see
pop but the subcommands are different.
.NH 3
popmail addserver <host> [<seconds>] [hh:mm-hh:mm] <protocol> <mailbox> <username> <password>
.LP
Add \fBhost\P as a pop server. When \fBseconds\fP is given, a timer is started
to query the host with that interval for mail. If not specified no quering to
the pop host will be started. You have to do that manualy with a kick.
When \fBhh:mm-hh:mm\fP is given then only in that exact timeframe are queries
to the host made (allowed).
\fBProtocol\fP is eighter POP2 or POP3, depending on the mail service the
host is providing. Note: pop2 is superceded by pop3. \fBMailbox\fP is the
mailbox name on the host where fore mail has to be picked up. \fBUsername\fP
and \fBpassword\fP are this systems validation parameters for the host.
Note that on entering this command the host name is looked up. If non exsistant
an error message is presented.
.NH 3
popmail dropserver <host>
.LP
Drops \fBhost\fP from the list of pop servers to be queried.
All references to the entry are deleted from the current system.
.NH 3
popmail kick <host>
.LP
Starts a pop session with \fBhost\fP to retrieve mail. This command is needed
when no interval is specified with the \fBpopmail addserver\fP command.
.NH 3
popmail list
.LP
Lists the current popmail server table.
.NH 3
popmail quiet <yes|no>
.LP
Displays or sets the notification of new mail ariving via pop.
.NH 3
popmail trace <level>
.LP
Displays or sets the trace level of pop sessions. Current trace levels are:
0 - No tracing
1 - Serious errors reported
2 - Transient errors reported
3 session progress reported
Note that tracing only goes to the log file.
.NH 2
ppp <subcommands>
.LP
These commands are used for Point to Point Protocol interfaces.
.LP
This implementation of PPP is designed to be as complete as possible.
Because of this, the number of options can be rather daunting.
However, a typical PPP configuration might include the following commands:
.DS
attach asy 0x3f8 4 ppp pp0 4096 1500 9600
dial pp0 30 <hostid> 3 dialer.pp0
#
ppp pp0 lcp local accm 0
ppp pp0 lcp local compress address on
ppp pp0 lcp local compress protocol on
ppp pp0 lcp local magic on
ppp pp0 lcp open active
#
ppp pp0 ipcp local compress tcp 16 1
ppp pp0 ipcp open active
#
route add default pp0
.DE
.NH 3
ppp <iface>
.LP
Display the status of the PPP interface.
.NH 3
ppp <iface> lcp ...
.LP
These commands are used for the LCP [Link Control Protocol]
configuration.
.NH 4
ppp <iface> lcp close
.LP
Shutdown the PPP interface.
.NH 4
ppp <iface> lcp local ...
.LP
These commands control the configuration of the local side of the link.
If an option is specified, the parameters will be used
as the initial values in configuration requests.
If not specified, that option will not be requested.
.LP
For each of these options,
the \fBallow\fP parameter will permit the remote
to include that option in its response,
even when the option is not included in the request.
By default, all options are allowed.
.NH 5
ppp <iface> lcp local accm [ <bitmap> | allow [on | off] ]
.LP
Display or set the Async Control Character Map.
The default is 0xffffffff.
.NH 5
ppp <iface> lcp local authenticate [ pap | none | allow [on | off] ]
.LP
Display or set the authentication protocol.
The default is \fBnone\fP.
.NH 5
ppp <iface> lcp local compress address/control [ on | off | allow [on | off] ]
.LP
Display or set the option to compress the address and control fields of
the PPP HLDC-like header.
This is generally desirable for slow asynchronous links,
and undesirable for fast or synchronous links.
The default is off.
.NH 5
ppp <iface> lcp local compress protocol [ on | off | allow [on | off] ]
.LP
Display or set the option to compress the protocol field of
the PPP HLDC-like header.
This is generally desirable for slow asynchronous links,
and undesirable for fast or synchronous links.
The default is off.
.NH 5
ppp <iface> lcp local magic [ on | off | <value> | allow [on | off] ]
.LP
Display or set the initial Magic Number.
The default is off (zero).
.NH 5
ppp <iface> lcp local mru [ <size> | allow [on | off] ]
.LP
Display or set the Maximum Receive Unit.
The default is 1500.
.NH 5
ppp <iface> lcp local default
.LP
Reset the options to their default values.
.NH 4
ppp <iface> lcp open active | passive
.LP
Wait for the physical layer to come up.
If \fBactive\fP, initiate configuration negotiation.
If \fBpassive\fP, wait for configuration negotiation from the remote.
.NH 4
ppp <iface> lcp remote ...
.LP
These commands control the configuration of the remote side of the link.
The options are identical to those of the local side.
If an option is specified, the parameters will be used
in responses to the remote's configuration requests.
If not specified, that option will be accepted if it is allowed.
.LP
For each of these options,
the \fBallow\fP parameter will permit the remote
to specify that option in its request.
By default, all options are allowed.
.NH 4
ppp <iface> lcp timeout [<seconds>]
.LP
Display or set the interval to wait between configuration
or termination attempts.
The default is 3 seconds.
.NH 4
ppp <iface> lcp try ...
.LP
These commands are used for the various counters.
.NH 5
ppp <iface> lcp try configure [<count>]
.LP
Display or set the number of configuration requests sent.
The default is 10.
.NH 5
ppp <iface> lcp try failure [<count>]
.LP
Display or set the number of bad configuration requests allowed from the remote.
The default is 5.
.NH 5
ppp <iface> lcp try terminate [<count>]
.LP
Display or set the number of termination requests sent before shutdown.
The default is 2.
.NH 3
ppp <iface> ipcp ...
.LP
These commands are used for the IPCP [Internet Protocol Control Protocol]
configuration.
.LP
The \fBclose, open, timeout\fP and \fBtry\fP sub-commands
are identical to the LCP (described above).
.NH 4
ppp <iface> ipcp local ...
.LP
These commands control the configuration of the local side of the link.
If an option is specified, the parameters will be used
as the initial values in configuration requests.
If not specified, that option will not be requested.
.LP
For each of these options,
the \fBallow\fP parameter will permit the remote
to include that option in its response,
even when the option is not included in the request.
By default, all options are allowed.
.NH 5
ppp <iface> ipcp local address [ <hostid> | allow [on | off] ]
.LP
Display or set the local address for negotiation purposes.
If an address of 0 is specified,
the other side of the link will supply the address.
By default, no addresses are negotiated.
.NH 5
ppp <iface> ipcp local compress [ tcp <slots> [<flag>] | none | allow [on | off] ]
.LP
Display or set the compression protocol.
The default is \fBnone\fP.
.LP
The \fBtcp\fP <slots> specifies the number of "conversation" slots,
which must be 1 to 255.
(This may be limited at compilation time to a smaller number.)
A good choice is in the range 4 to 16.
.LP
The \fBtcp\fP <flag> is 0 (don't compress the slot number)
or 1 (OK to compress the slot number).
KA9Q can handle compressed slot numbers, so the default is 1.
.NH 4
ppp <iface> ipcp remote ...
.LP
These commands control the configuration of the remote side of the link.
The options are identical to those of the local side.
If an option is specified, the parameters will be used
in responses to the remote's configuration requests.
If not specified, that option will be accepted if it is allowed.
.LP
For each of these options,
the \fBallow\fP parameter will permit the remote
to specify that option in its request.
By default, all options are allowed.
.NH 3
ppp <iface> pap ...
.LP
These commands are used for the PAP [Password Authentication Protocol]
configuration.
.LP
The \fBtimeout\fP and \fBtry\fP sub-commands
are identical to the LCP (described above).
However, the terminate counter is unused.
.NH 4
ppp <iface> pap user [ <username> [<password>] ]
.LP
Display or set the username (the password may be set, but not displayed).
When the username is specified, but no password is supplied,
the \fBftpusers\fP file is searched for the password.
When a username/password is unknown or rejected,
a session will appear at the console to prompt for a new username/password.
.NH 3
ppp <iface> trace [<flags>]
.LP
Display or set the flags that control the logging of information
during PPP link configuration.
.LP
The flag value is 0 for none, 1 for basic, and 2 for general.
Values greater than 2 are usually not compiled,
and are described in the appropriate source files where they are defined.
.NH 2
ps
.LP
Display all current processes in the system. The fields are as follows:
.LP
\fBPID\fP - Process ID (the address of the process descriptor).
.LP
\fBSP\fP - The current value of the process stack pointer.
.LP
\fBstksize\fP - The size of the stack allocated to the process.
.LP
\fBmaxstk\fP - The apparent peak stack utilization of this process. This is
done in a somewhat heuristic fashion, so the numbers should be treated
as approximate. If this number reaches or exceeds the stksize figure,
the system is almost certain to crash; the \fInos.exe\fP program
should be recompiled to give the process a larger allocation when it is started.
.LP
\fBevent\fP - The event this task is waiting for, if it is not runnable.
.LP
\fBfl\fP - Process status flags. There are three: I (Interrupts enabled),
W (Waiting for event) and S (suspended). The I
flag is set whenever a task has executed a pwait() call (wait for
event) without first disabling hardware interrupts. Only tasks that
wait for hardware interrupt events will turn off this flag; this is
done to avoid critical sections and missed interrupts. The W flag
indicates that the process is waiting for an event; the \fBevent\fP
column will be non-blank. Note that although there may be several
runnable processes at any time (shown in the \fBps\fP listing as those
without the W flag and with blank event fields) only one
process is actually running at any one instant (The Refrigerator
Light Effect says that the \fBps\fP command is always the one running
when this display is generated.)
.NH 2
pwd [<dirname>]
.LP
An alias for the \fBcd\fP command.
.NH 2
rarp <subcommand>
.LP
This uses the reverse address resolution protocol.
.NH 3
rarp query <iface> <callsign>
.LP
This starts a reverse resolution request via \fBiface\fP to find the
IP address for \fBcallsign\fP. It counts down for 10 seconds before
giving up listening for an answer.
.NH 2
record [off | <filename>]
.LP
Append to \fBfilename\fP all data received on the current
session. Data sent on the current session is also written into the file
except for Telnet sessions in remote echo mode. The command \fBrecord
off\fP stops recording and closes the file.
.NH 2
remote [-p <port>] [-k <key>] [-a <kickaddr>] <hostid> exit | reset | kick
.LP
Send a UDP packet to the specified host commanding it
to exit the \fBNos\fP program, reset the processor,
or force a retransmission on TCP connections. For this
command to be accepted, the remote system must be running the \fBremote\fP
server and the port number specified in the \fBremote\fP command must match
the port number given when the server was started on the remote system.
If the port numbers do not match, or if the remote server is not running
on the target system, the command packet is ignored. Even if the
command is accepted there is no acknowledgement.
.LP
The \fBkick\fP command forces a retransmission timeout on all
TCP connections that the remote node may have with the local node.
If the -a option is used, connections to the specified host are
kicked instead. No key is required for the kick subcommand.
.LP
The \fBexit\fP and \fBreset\fP subcommands are mainly useful for
restarting the nos program on a remote
unattended system after the configuration file has been updated. The
remote system should invoke the \fBNos\fP program automatically upon booting,
preferably in an infinite loop. For example, under MS-DOS the boot disk
should contain the following in \fBautoexec.bat\fP:
.DS
.ft CW
:loop
nos
goto :loop
.ft P
.DE
.LP
.NH 3
remote -s <key>
.LP
The exit and reset subcommands of remote require a password.
The password is set
on a given system with the \fB-s\fP option, and it is specified in a command
to a remote system with the \fB-k\fP option. If no password is set with the
\fB-s\fP option, then the exit and reset subcommands are disabled.
.LP
Note that \fBremote\fP is an experimental feature in NOS; it is \fInot\fP
yet supported by any other TCP/IP implementation.
.NH 2
rename <oldfilename> <newfilename>
.LP
Rename \fBoldfilename\fP to \fBnewfilename\fP.
.NH 2
reset [<session>]
.LP
Reset the specified session; if no argument is given, reset the current
session. This command should be used with caution since it does not
reliably inform the remote end that the connection no longer exists. (In
TCP a reset (RST) message will be automatically generated should the remote
TCP send anything after a local reset has been done. In AX.25 the DM
message performs a similar role. Both are used to get rid of a lingering
half-open connection after a remote system has crashed.)
.NH 2
rip <subcommand>
.LP
These commands are used for the RIP service.
.NH 3
rip accept <gateway>
.LP
Remove the specified gateway from the RIP filter table, allowing future
broadcasts from that gateway to be accepted.
.NH 3
rip add <hostid> <seconds> [<flags>]
.LP
Add an entry to the RIP broadcast table. The IP routing table will be sent
to \fBhostid\fP every interval of \fBseconds\fP. If
\fBflags\fP is specified as 1, then "split horizon" processing will
be performed
for this destination. That is, any IP routing table entries pointing to the
interface that will be used to send this update will be removed from the
update. If split horizon processing is not specified, then all routing
table entries except those marked "private" will be sent in each update.
(Private entries are never sent in RIP packets).
.LP
Triggered updates are always done. That is, any change in the routing table
that causes a previously reachable destination to become unreachable will
trigger an update that advertises the destination with metric 15, defined to
mean "infinity".
.LP
Note that for RIP packets to be sent properly to a broadcast address, there
must exist correct IP routing and ARP table entries that will first steer
the broadcast to the correct interface and then place the correct link-level
broadcast address in the link-level destination field. If a standard IP
broadcast address convention is used (eg. 128.96.0.0 or 128.96.255.255)
then chances are you already have the necessary IP routing table entry, but
unusual subnet or cluster-addressed networks may require special attention.
However, an \fBarp add\fP command will be required to translate this address to
the appropriate link level broadcast address. For example,
.sp
.DS I 0
.ft CW
arp add 128.96.0.0 ethernet ff:ff:ff:ff:ff:ff
.ft P
.DE
.sp
for an Ethernet network (ip address is a sample only!!!), and
.sp
.DS I 0
.ft CW
arp add 44.255.255.255 ax25 qst-0
.ft P
.DE
.sp
for an AX25 packet radio channel. (If multiple AX25 interfaces, make a unique
address for each interface.)
.NH 3
rip drop <dest>
.LP
Remove an entry from the RIP broadcast table.
.NH 3
rip merge [on | off]
.LP
This flag controls an experimental feature for consolidating redundant
entries in the IP routing table. When rip merging is enabled, the table is
scanned after processing each RIP update. An entry is considered redundant
if the target(s) it covers would be routed identically by a less "specific"
entry already in the table. That is, the target address(es) specified
by the entry in question must also match the target addresses of the
less specific entry and the two entries must have the same interface
and gateway fields. For example, if the routing table contains
.sp
.DS I 0
.ft CW
Dest Len Interface Gateway Metric P Timer Use
1.2.3.4 32 ethernet0 128.96.1.2 1 0 0 0
1.2.3 24 ethernet0 128.96.1.2 1 0 0 0
.ft
.DE
.sp
then the first entry would be deleted as redundant since packets sent to
1.2.3.4 will still be routed correctly by the second entry. Note that the
relative metrics of the entries are ignored.
.NH 3
rip refuse <gateway>
.LP
Refuse to accept RIP updates from the specified gateway by adding the
gateway to the RIP filter table. It may be later removed with the \fBrip
accept\fP command.
.NH 3
rip request <gateway>
.LP
Send a RIP Request packet to the specified gateway, causing it to reply
with a RIP Response packet containing its routing table.
.NH 3
rip status
.LP
Display RIP status, including a count of the number of packets sent
and received, the number of requests and responses, the number of
unknown RIP packet types, and the number of refused RIP updates from hosts
in the filter table. A list of the addresses and intervals
to which periodic RIP updates are being sent is also shown, along with
the contents of the filter table.
.NH 3
rip trace [0 | 1 | 2]
.LP
This variable controls the tracing of incoming and outgoing RIP packets.
Setting it to 0 disables all RIP tracing. A value of 1 causes changes
in the routing table to be displayed, while packets that cause no changes
cause no output. Setting the variable to 2 produces maximum output,
including tracing of RIP packets that cause no change in the routing table.
.NH 3
rip ttl <seconds>
.LP
Displays or sets the time to live timer to \fBseconds\fP. Normal timeout
value is 240 seconds. This is not the ttl in a rip broadcast (16 = infinite).
Set this timer before starting rip. Change this timer only in cooperation with
your surrounding nodes. Default is 240 seconds.
.NH 2
rlogin host
.LP
Sets up an rlogin session via port 511 to an *NIX compatible station.
Defaut terminal is an ansi (as defined with the fkeys) compatible terminal.
Default user name is guest. (Redefine with set USER= environement variable).
.NH 2
rmdir <dirname>
.LP
Remove a sub-directory from the current working directory.
.NH 2
route
.LP
With no arguments, \fBroute\fP displays the IP routing table.
.NH 3
route add <dest_hostid>[/bits] | default <iface> [<gateway_hostid> | direct [<metric>]]
.LP
This command adds an entry to the routing table. It requires at least two
more arguments, the hostid of the target destination and the name of
the interface to which its packets should be sent. If the destination is
not local, the gateway's hostid should also be specified. (If the interface
is a point-to-point link, then \fBgateway_hostid\fP may be omitted even if the
target is non-local because this field is only used to determine the
gateway's link level address, if any. If the destination is directly
reachable, \fBgateway_hostid\fP is also unnecessary since the destination
address is used to determine the interface link address).
If \fBrspf\fP is used and the system is a switch / router to multiple
routes the keyword \fBdirect\fP can be used i.s.o a \fBgateway_hostid\fP to
set the metric higher as the default 1. This way routes advertized by
other \fBrspf\fP stations can be cheaper and get selected.
If \fBdirect\fP is given but \fBmetric\fP not, an new algoritm is used
to set the metric dependent on the number of subnet mask bits.
.LP
The optional \fB/bits\fP suffix to the destination host id specifies how
many leading bits in the host id are to be considered significant in the
routing comparisons. If not specified, 32 bits (i.e., full significance) is
assumed. With this option, a single routing table entry may refer to
many hosts all sharing a common bit string prefix in their IP addresses.
For example, ARPA Class A, B and C networks would use suffixes of /8,
/16 and /24 respectively; the command
.DS I 0
.ft CW
route add 44/8 sl0 44.64.0.2
.ft P
.DE
.LP
causes any IP addresses beginning with "44" in the first 8 bits to be
routed to 44.64.0.2; the remaining 24 bits are "don't-cares".
.LP
When an IP address to be routed matches more than one entry in the routing
table, the entry with largest \fBbits\fP parameter (i.e., the "best" match)
is used. This allows individual hosts or blocks of hosts to be exceptions
to a more general rule for a larger block of hosts.
.LP
The special destination \fBdefault\fP is used to route datagrams to
addresses not matched by any other entries
in the routing table; it is equivalent to specifying a
\fB/bits\fP suffix of /0 to any destination hostid. Care must be taken with
default entries since two nodes with default entries pointing at each
other will route packets to unknown addresses back and forth in a loop
until their time-to-live (TTL) fields expire. (Routing loops for
specific addresses can also be created, but this is less likely to occur
accidentally).
.LP
There are two build in interfaces: \fBloopback\fP and \fBencap\fP.
\fBLoopback\fP is for internal purposes only. The \fBencap\fP is an IP
encapsulator interface. This is used to encapsulate a complete IP datagram
into a IP datagram so that it gets "piggy-backed". It is often used
to carry ampr.org datagrams (net44) over the Internet. Note that the
Internet is fully connected and that ampr.org is (at least) very loose.
This way two sites can interchange net44 datagrams to each other.
Some extra notes: A Internet gateway has 2 IP addresses: one on ampr.org
and one on the Internet. You should make sure that the interface
connected to the Internet has the ifconfig ipaddr set correctly.
Note: This previously only worked as gateway for other stations. There was
some guessing done in picking an IP address when encap is used localy.
The guessing takes the worst guess. (always wrong with a 2.7 Murphy factor)
The code now uses the local IP address as source when the route starts
at the local station. If this is not what you want, you can overrule this
by setting the IP address of the psuedo encap interface to what you want
it to be.
.LP
Some extra notes on encap: I have 3 systems on an ethernet with network
129.179.122.128/25. In the office I have another net linked to the Internet.
The addresses there are in the 129.179.122.0/25 range. Now i have a radio
link with 44.137.0.2 and 44.137.1.2 on respective sites. On the 44.137.0.2
system i have \fIroute add 44.0.0.0/8 encap 44.137.1.1 99\fP. On a next
system on my local ethernet i have 44.137.0.1 / 129.179.122.129.
To get from that system to say 44.62.0.1 i have to add an encap to my
local gateway with \fIroute add 44.0.0.0/8 encap 129.179.122.130\fP.
A \fIroute add default ec0 129.179.122.130\fP gives me access to the
Internet.
Otherwise it will lookup the address for the interface to be used to
reach 129.179.122.130 and will use 129.179.122.129. Now 44.62.0.1
will NEVER know where it came from. So adding the encap on the second
system solves the problem.
.LP
Here are some examples of the \fBroute\fP command:
.DS I 0
.ft CW
# Route datagrams to IP address 44.0.0.3 to SLIP line #0.
# No gateway is needed because SLIP is point-to point.
route add 44.0.0.3 sl0
# Route all default traffic to the gateway on the local Ethernet
# with IP address 44.0.0.1
route add default ec0 44.0.0.1
# The local Ethernet has an ARPA Class-C address assignment;
# route all IP addresses beginning with 192.4.8 to it
route add 192.4.8/24 ec0
# The station with IP address 44.0.0.10 is on the local AX.25 channel
route add 44.0.0.10 ax0
# An encapsulation link to 192.4.8.12 where the subnet 44.64.0.0 is
accessible. The internet does not know where we are but we just use them
with what they know:
route add 44.64.0.0/16 encap 192.4.8.12 4
.ft P
.DE
.NH 3
route addprivate <dest hostid>[/bits] | default <iface> [<gateway hostid> [<metric>]]
.LP
This command is identical to \fBroute add\fP except that it also marks the new
entry as private; it will never be included in outgoing RIP updates.
.NH 3
route drop <dest hostid>
.LP
\fBroute drop\fP deletes an entry from the table. If a packet arrives for the
deleted address and a default route is in effect, it will be used.
.NH 2
rspf <subcmd>
.LP
RSPF is the Radio Shortest Path First protocol. Each station listens for RRH
(Router to Router Hello) messages. When such a RRH message is received,
\fBNos\fP will figure out if the link is bi-directional by pinging the other
station. The protocol is described in the RSPF 2.1 specification.
.NH 3
rspf interface <interface> <quality> <horizon>
.LP
<interface> is the required interface rspf should use.
quality is from 1 to 127
horizon is between 1 to 255
End nodes should have the quality set to 1. Immediate nodes normaly set the
quality to 8. The normaly used value for horizon is 32.
.NH 3
rspf mode [vc | datagram | none]
.LP
Without arguments, displays the preferred mode for RSPF.
Modes are VC (Virtual Cirquit) and Datagram. none resets the preferred mode.
.NH 3
rspf rrhtimer [seconds]
.LP
Without arguments, displays the rrh timer value.
.NH 3
rspf suspecttimer [seconds]
.LP
Without arguments, displays the suspect timer value.
.NH 3
rspf timer [seconds]
.LP
Without arguments, displays the update timer value.
.LP
To activate RSPF, do the following.
Set the broadcast address for the destination interface, example ax0.
ifconfig ax0 broadcast 44.255.255.255
.LP
This automatically creates a routing entry for 44.255.255.255 in the routing
table. If intend to use RSPF on more than one interface, those interfaces must
each have different broadcast adresses. Else the routing entries will be
overwriten by the next definition.
.LP
Configure ax0 as an RSPF interface with horizon 32 and a quality of 1 (hops).
This is typical for an end node. replace the 1 with an 8 for immediate nodes.
rspf interface ax0 1 32
Set the interval between RRH messages.
rspf rrhtimer 900
Define how long it takes until an idle link is suspected to be bad.
rspf suspecttimer 2000
Set the interval between routing updates.
rspf timer 900
.NH 2
sccstat
.LP
Display the defined PE1CHL scc driver statistics.
.NH 2
session [[<session>] [flowmode [on | off]]]
.LP
Without arguments, displays the list of current sessions, including
session number, remote TCP or AX.25 address and the address of the TCP or
AX.25 control block. An asterisk (*) is shown next to the current
that session. Entering a session number as an argument to the \fBsession\fP
command will put you in \fIconverse\fP mode with that session. If the Telnet
session; entering a blank line at this point puts you in converse mode with
server is enabled, the user is notified of an incoming request and a
session number is automatically assigned. The user may then select the
session normally to converse with the remote user as though the session
had been locally initiated.
Adding the flowmode displays or enables / disables setting of *more*
handling for that session. This is handy for example by long directory
listings comming from an ftp session. Escaping to command mode before
issuing the dir command and entering "session # flowmode on" gives a
page at a time to look at. At any time you can escape out again and switch
flowmode off. Note that a ftp session has it's own flow command now buildin.
See FTP commands later in this manual.
.NH 2
shell [\c <command.com>]
.LP
Suspends \fBNos\fP and executes a sub-shell
("command processor" under MS-DOS).
When the sub-shell exits, \fBNos\fP resumes
(under MS-DOS, enter the \fBexit\fP command).
Note: see the \fBCOMSPEC\fP environement variable.
When \c is given, command.com is then a command processor to be executed.
Background activity (FTP servers, etc) is also suspended
while the subshell executes. Note that this will fail unless there is
sufficient unused memory for the sub-shell and whatever command the user
tries to run.
When shelled out, Mailbox Operator connects and ttylink incomming connections
are refuced. A System unattended message is send to the "connector" of that
socket.
.NH 2
skick #socket
.LP
This is a shorthand for the various kick subcommands. This one searches the
socket for correct type and kicks the transport layer.
.NH 2
smtp <subcommand>
.LP
These commands are used for the Simple Message Transport Protocol service
(that is, mail).
.NH 3
smtp batch [yes | no]
.LP
If set smtp will batch the commands into one frame. When off only one
command is send and a response is waited for. Some old and flaky
smtp servers cannot handle more than one command at a time. \fBNos\fP can
handle multiple. If you are not hindered by an old smpt server, setting
batch reduces bandwith.
.NH 3
smtp gateway [<hostid>]
.LP
Displays or sets the host to be used as a "smart" mail relay. Any mail sent
to a host not in the host table will instead be sent to the gateway for
forwarding.
.NH 3
smtp kick
.LP
Run through the outgoing mail queue and attempt to deliver any pending mail.
This command allows the user to "kick" the mail system manually.
Normally, this command is periodically invoked by a timer
whenever \fBNos\fP is running.
.NH 3
smtp kill [<jobid>]
.LP
Kill the job and delete the message.
.NH 3
smtp list
.LP
List the current jobs. A "L" means locked and in progress.
It is wise to add in autoexec.bat a "del /spool/mqueue/*.lck" command
.NH 3
smtp maxclients [<count>]
.LP
Displays or sets the maximum number of simultaneous outgoing SMTP sessions
that will be allowed. The default is 10; reduce it if network congestion
is a problem.
.NH 3
smtp mode [queue | route]
.LP
Sets the smtp delivery mode. If queue, all messages are left in /spool/rqueue
for external forwarding and handling. If route, messages are handled,
if for local, appended to a mailbox or if remote, they are forwarded.
.NH 3
smtp mxlookup [yes | no]
.LP
Displays or sets a flag enabling or disabling MX record lookups. This can
be enabled if a domain server is available in the near distance (reachable).
It should be disabled (default) if no domain server is in reach to satisfy
the MX query. Note that MX record handling is very limited in NOS. If an
answer from a domain name server comes in it is taken to be the destination.
.NH 3
smtp quiet [yes | no]
.LP
Enables or disables the message that new mail arrived at this system.
.NH 3
smtp timer [<seconds>]
.LP
Displays or sets the interval, between scans of the outbound
mail queue. For example, \fBsmtp timer 600\fP will cause the system to check
for outgoing mail every 10 minutes and attempt to deliver anything it finds,
subject of course to the \fBsmtp maxclients\fP limit. Setting a value of zero
disables
queue scanning altogether, note that this is the default! This value is
recommended for stand alone IP gateways that never handle mail, since it
saves wear and tear on the floppy disk drive.
.NH 3
smtp trace [<value>]
.LP
Displays or sets the trace flag in the SMTP client, allowing you to
watch SMTP's conversations as it delivers mail. Zero (the default)
disables tracing.
.NH 2
socket [[<socket #>] [flowmode [yes | no]]]
.LP
Without an argument, displays all active sockets, giving their index
and type, the address of the associated protocol control block and the
and owner process ID and name. If the index to an active socket is
supplied, the status display for the appropriate protocol is called.
For example, if the socket refers to a TCP connection, the display will
be that given by the \fBtcp status\fP command with the protocol control
block address.
\fBFlow\fP mode can be set or cleared on a session if so wanted. This comes
in handy when a large directory is displayed by ftp. Escaping from the session
just before entering dir and setting flowmode and returning to that session,
gives a screen full at a time with -more- processing.
.NH 2
source <filename>
.LP
Read subsequent commands from \fBfilename\fP until EOF. Then resume reading
commands from the previous stream. This can be used to keep routing statements
in a separate file, wich can be read at some point in \fBautoexec.nos\fP.
.NH 2
start ax25 | convers | discard | echo | finger | ftp | lpd | netrom | nntp | pop | pop2 | pop3 | remote | rip | smtp | telnet | tip | ttylink
.LP
Start the specified Internet server, allowing remote connection requests.
.NH 2
status
.LP
Displays load information on \fBNos\fP. When started, how long running,
open files etc.
.NH 2
stop ax25 | convers | discard | echo | finger | ftp | lpd | netrom | nntp | pop | pop2 | pop3 | remote | rip | smtp | telnet | tip | ttylink
.LP
Stop the specified Internet server, rejecting any further remote connect
requests. Existing connections are allowed to complete normally.
.NH 2
tail <filename>
.LP
This does a more on the last couple of lines of file \fBfilename\fP.
.NH 2
tcp <subcommand>
.LP
These commands are used for the Transmission Control Protocol service.
.NH 3
tcp irtt [<milliseconds>]
.LP
Display or set the initial round trip time estimate, in milliseconds, to be
used for new TCP connections until they can measure and adapt to the
actual value. The default is 5000 milliseconds (5 seconds).
Increasing this when operating
over slow channels will avoid the flurry of retransmissions that would
otherwise occur as the smoothed estimate settles down at the correct
value. Note that this command should be given before servers are started in
order for it to have effect on incoming connections.
.LP
TCP also keeps a \fIcache\fP of measured round trip times and mean
deviations (MDEV) for current and recent destinations. Whenever a new
TCP connection is opened, the system first looks in this cache. If the
destination is found, the cached IRTT and MDEV values are used. If not,
the default IRTT value mentioned above is used, along with a MDEV of 0.
This feature is fully automatic, and it can improve performance greatly
when a series of connections are opened and closed to a given destination
(eg. a series of FTP file transfers or directory listings).
.NH 3
tcp kick <tcb_addr>
.LP
If there is unacknowledged
data on the send queue of the specified TCB, this command forces
an immediate retransmission.
.NH 3
tcp mss [<size>]
.LP
Display or set the TCP Maximum Segment Size in bytes that will be sent on all
outgoing TCP connect request (SYN segments). This tells the remote end the
size of the largest segment (packet) it may send. Changing MSS affects
only future connections; existing connections are unaffected.
.NH 3
tcp reset <tcb_addr>
.LP
Deletes the TCP control block at the specified address.
.NH 3
tcp rtt <tcb_addr> <milliseconds>
.LP
Replaces the automatically computed round trip time in the specified TCB
with the rtt in milliseconds. This command is useful to speed up
recovery from a series of lost packets since it provides a manual bypass
around the normal backoff retransmission timing mechanisms.
.NH 3
tcp status [<tcb_addr>]
.LP
Without arguments, displays several TCP-level statistics, plus a summary of
all existing TCP connections, including TCB address, send and receive queue
sizes, local and remote sockets, and connection state. If \fBtcb_addr\fP is
specified, a more detailed dump of the specified TCB is generated, including
send and receive sequence numbers and timer information.
.NH 3
tcp syndata [yes | no]
.LP
Display or set the tcp syn + data pigybacking flag. Some tcp systems cannot
handle syn + data together.
.NH 3
tcp timertype [linear | exponential]
.LP
Displays the current setting or sets the timer type backoff algoritm.
.NH 3
tcp trace [yes | no]
.LP
Display or set the tcp trace flag on or off.
.NH 3
tcp window [<size>]
.LP
Displays or sets the default receive window size in bytes to be used by TCP
when creating new connections. Existing connections are unaffected.
.NH 2
telnet <hostid> [<port>]
.LP
Creates a Telnet session to the specified host and enters converse mode.
If <port> is given that number is used. Default port is 23.
.NH 2
test
.LP
Start an internal test for an overflow problem that might appear in the
clock function of some AT computers.
.NH 2
thirh-party [yes | no]
.LP
This is a restriction setter for some countries where stations are not
allowed to handle thirth party mail traffic.
.NH 2
ttylink <hostid> [<port>]
.LP
Creates a Telnet session to the specified host and enters converse mode.
If <port> is given that number is used. Default port is 87.
This uses a split screen interface for easy conversation.
.NH 2
tip <iface>
.LP
Creates a \fBtip\fP session that
connects to the specified interface in "dumb terminal" mode.
The interface must have already been attached with the \fBattach\fP command.
Any packet
traffic (IP datagrams, etc) routed to the interface while this session
exists will be discarded.
To close a \fBtip\fP session, use the \fBreset\fP command. It
will then revert to normal \fBslip, nrs\fP or \fBkiss\fP mode operation.
.LP
This feature is primarily useful for manually establishing SLIP connections.
At present, only the built-in "com" ports can be used with this command.
.NH 2
trace [<iface> [off | <btio> [<tracefile>]]]
.LP
Controls packet tracing by the interface drivers. Specific bits enable
tracing of the various interfaces and the amount of information produced.
Trace output to the screen is only send to the command screen, when in a session
tracing to the screen is suspended. (From version 2.0l)
Tracing is controlled on a per-interface basis; without arguments, \fBtrace\fP
gives a list of all defined interfaces and their tracing status.
Output can be limited to a single interface by specifying it, and the
control flags can be change by specifying them as well. The flags are
given as a hexadecimal number which is interpreted as follows:
.DS I 0
.ft CW
O - Enable tracing of output packets if 1, disable if 0
I - Enable tracing of input packets if 1, disable if 0
T - Controls type of tracing:
0 - Protocol headers are decoded, but data is not displayed
1 - Protocol headers are decoded, and data (but not the
headers themselves) are displayed as ASCII characters,
64 characters/line. Unprintable characters are displayed
as periods.
2 - Protocol headers are decoded, and the entire packet
(headers AND data) is also displayed in hexadecimal
and ASCII, 16 characters per line.
B - Broadcast filter flag. If set, only packets specifically addressed
to this node will be traced; broadcast packets will not be displayed.
.ft
.DE
If \fBtracefile\fP is not specified, tracing will be to the console.
.NH 2
udp status
.NH 2
verbose [0 | 1 | 2 | 3]
.LP
Set or display the level of message output in file transfers.
\fBVerbose 0\fP gives the least output, and \fBverbose 3\fP the most,
as follows:
.DS I 0
0 - Display error messages only.
1 - Display error messages plus a one-line summary after each transfer
giving the name of the file, its size, and the transfer time and rate.
2 - Display error and summary messages plus the progress messages generated
by the remote FTP server. (This setting is the default.)
3 - Display all messages. In addition, a "hash mark" (#) is displayed for
every 1,000 bytes sent or received.
.DE
If a command is sent to the
remote server because it is not recognized locally, the response
is always displayed, regardless of the setting of \fBverbose\fP.
This is necessary for commands like \fBpwd\fP (display working directory),
which would
otherwise produce no message at all if \fBverbose\fP were set to 0 or 1.
.LP
Displays the status of all UDP receive queues.
.NH 2
upload [<filename>]
.LP
Opens \fBfilename\fP and sends it on the current session as though it were
typed on the terminal.
.NH 2
watch
.LP
Displays the current software stopwatch values, with min and max readings
for each. This facility allows a programmer to measure the execution time
of critical sections of code with microsecond resolution.
This command is supported only on the IBM PC, and the meaning of each
stopwatch value depends on where the calls have been inserted for test
purposes; the distribution copy of \fInos\fP usually has no stopwatch calls.
.NH 2
watchdog [on | off]
.LP
Enables or disables the watchdog timer. If internal operations cease for
300 second and watchdog is enabled, a system reset is performed. See the
remote command for setting up autoexec.bat.
.NH 2
?
.LP
Same as the \fBhelp\fP command.
.bp
.NH 1
Attach Commands
.LP
This chapter details the attach commands for the various hardware interface
drivers. Not all of these drivers may be configured into every \fBNos\fP
binary; a list of the available types may be obtained by entering the
command \fBattach ?\fP.
.LP
Some parameters are accepted by several drivers. They are:
.NH 3
<bufsize>
.LP
For asynchronous devices (eg. COM ports operating in SLIP or NRS mode)
this parameter specifies the size of the receiver's ring buffer.
It should be large enough to hold incoming data at full line speed for
the longest time that the system may be busy in MS-DOS or the BIOS doing
a slow I/O operation (eg. to a floppy disk). A kilobyte is usually more
than sufficient.
.LP
For synchronous devices (eg. the \fBscc, hs, pc100, hapn\fP
and \fBdrsi\fP interfaces operating in HDLC mode),
the bufsize parameter specifies the largest packet
that may be received on the interface. This should be set by mutual
agreement among stations sharing the channel. For standard AX.25 with a
maximum I-frame data size of 256 bytes, a value of 325 should provide an
adequate safety margin. On higher speed channels (eg. 56kb/s) larger
values (eg. 2K bytes) will provide much better performance and allow
full-sized Ethernet packets to be carried without fragmentation.
.NH 3
<ioaddr>
.LP
The base address of the interface's control registers.This might be specified
in hex as 0xnnn or decimal. (nnn is the hexadecimal number).
.NH 3
<vector>
.LP
The interface's hardware interrupt (IRQ) vector, in decimal. When a vector
is followed by the character 'c' then the vector is added in a interrupt chain.
This way multiple devices can share the same interrupt vector
(hardware changes might be nessesary). A sample is the use of a 4 port comm
board sharing the same vector. The first attach command has a plain vector
and the following have the c appended. Note that the highest speed port
should be defined last (as it is served first by the chaining).
Do NOT specify the c with the first attach statement in that group as
unpredictable results will occure.
attach asy 0x3f8 4 ax25 ax25 2048 256 1200
attach asy 0x3f0 4c ax25 ax25 2048 256 9600
.NH 3
<iface>
.LP
The name (an arbitrary character string)
to be assigned to this interface. It is used to refer to the
interface in \fBifconfig\fP and \fBroute\fP commands and in \fBtrace\fP output.
.NH 3
<mtu>
.LP
The Maximum Transmission Unit size, in bytes. Datagrams
larger than this limit will be fragmented at the IP layer into smaller
pieces. For AX.25 UI frames, this limits the size of the information field.
For AX.25 I frames, however, the \fBax25 paclen\fP parameter is also
relevant. If
the datagram or fragment is still larger than \fBpaclen\fP, it is also
fragmented at the AX.25 level (as opposed to the IP level) before
transmission. (See the \fBax25 paclen\fP command for further information).
.NH 3
<speed>
.LP
The speed in bits per second (eg. 2400).
.NH 2
attach 3c500 <ioaddr> <vector> arpa <iface> <qlen> <mtu> [<ip_addr>]
.LP
Attach a 3Com 3C501 Ethernet interface. \fBqlen\fP is the maximum allowable
transmit queue length. If the \fBip_addr\fP parameter is not given, the value
associated with a prior \fBip address\fP command will be used.
.LP
The use of this driver is not recommended; use the packet driver interface
with the loadable 3C501 packet driver instead.
.NH 2
attach asy <ioaddr> <vector> ax25 | nrs | ppp | slip | raw <iface> <bufsize> <mtu>
<speed> [<vf>]
.LP
Attach a standard PC "com port" (asynchronous serial port),
using the National 8250 or 16550A chip.
Standard values on the IBM PC and clones for \fBioaddr\fP and \fBvector\fP
are 0x3f8 and 4 for COM1,
and 0x2f8 and 3 for COM2.
If the port uses a 16550A chip, it will be detected
automatically and the FIFOs enabled.
.NH 3
ax25
.LP
Similar to \fBslip\fP, except that an AX.25 header and a KISS TNC
control header are added to the front of the datagram before SLIP
encoding. Either UI (connectionless) or I (connection-oriented) AX.25
frames can be used; see the \fBmode\fP command for details.
.NH 3
nrs
.LP
Use the NET/ROM asynchronous framing technique for communication with
a local NET/ROM TNC.
.NH 3
ppp
.LP
Point-to-Point-Protocol.
Encapsulates datagrams in an HDLC-like frame.
This is a new Internet standard for point-to-point communication,
compatible with CCITT standards.
.NH 3
slip
.LP
Serial Line Internet Protocol.
Encapsulates IP datagrams directly in SLIP frames without a link
header. This is for operation on point-to-point lines and is compatible
with 4.2BSD UNIX SLIP.
.NH 3
raw
.LP
Raw serial line without protocol , special for lpd server.
.NH 3
<vf>
.LP
The optional flags are a string of the characters "vf":
\fBv\fP enables Van Jacobson TCP/IP Header Compression,
and is valid only for SLIP.
\fBf\fP forces the fifo on for 16550AFN compatible chips not hindered by the
original "design bug" and not needing the work-around. Unfortunate these
good chips don't get their fifo enabled. Specifying \fBf\fP on the attach
line forces the fifo to be used. (unpredictable results occure when specified
on a non 16550 type chip).
.NH 2
attach axip <iface> <mtu> <ip_addr> <callsign>
.LP
This creates a RFC1226 compatible AX.25 frame encapsulator for transmission
of AX.25 frames over the \fBInternet\fP. \fBIface\fP will be the name
of the interface, \fBip_addr\fP
the address of the remote system and \fBcallsign\fP the AX.25 callsign
this station is listening on for frames to digipeat.
Note that each attached axip interface should have a different callsign
to listen to and this should also be different from other callsign's used
on this station.
.NH 2
attach drsi <ioaddr> <vector> ax25 <iface> <bufsize> <mtu> <ch_a_speed>
<ch_b_speed>
.LP
N6TTO driver for the Digital Radio Systems PCPA 8530 card.
Since there are two channels on the board, two interfaces are attached.
They will be named \fBiface\fP with 'a' and 'b' appended.
\fBbufsize\fP is the receiver buffer size in bytes;
it must be larger than the largest frame to be received.
\fBch_a_speed\fP and \fBch_b_speed\fP are the speeds, in bits/sec,
for the A and B channels, respectively.
.NH 2
attach eagle <ioaddr> <vector> ax25 <iface> <bufsize> <mtu> <speed>
.LP
WA3CVG/NG6Q driver for the Eagle Computer card (Zilog 8530).
.NH 2
attach hapn <ioaddr> <vector> ax25 <iface> <bufsize> <mtu> csma | full
.LP
KE3Z driver for the Hamilton Amateur Packet Network adapter (Intel 8273).
The \fBcsma | full\fP parameter specifies whether the port should operate in
carrier sense multiple access (CSMA) mode or in full duplex.
.NH 2
attach hs <ioaddr> <vector> ax25 <iface> <bufsize> <mtu> <keyup_delay> <p>
.LP
Attach a DRSI PCPA or Eagle Computer interface card
using a special "high speed" 8530 driver.
This driver uses busy-wait loops to send and receive
each byte instead of interrupts, making it usable with high speed modems
(such as the WA4DSY 56kb/s modem) on slow systems.
This does have the side effect of "freezing"
the system whenever the modem transmitter or receiver is active.
This driver can operate only in CSMA mode, and it is recommended that
no other interfaces requiring small interrupt latencies be attached to
the same machine.
.LP
The \fBkeyup_delay\fP parameter specifies the transmitter keyup delay in
byte time intervals. The \fBp\fP value specifies the transmitter persistence
value in the range 1-255; the corresponding slot time is fixed at one
hardware clock tick, about 55 ms on the PC.
.LP
As with the other 8530 drivers, this driver actually attaches two interfaces,
one for each 8530 channel.
.NH 2
attach packet <intvec> <iface> <txqlen> <mtu>
.LP
Driver for use with separate software "packet drivers" meeting the
FTP Software, Inc, Software Packet Driver specification.
The driver must have already been installed before the
\fBattach\fP command is given. Packet drivers in the Ethernet, ARCNET,
SLIP, SLFP, and KISS/AX25 classes are supported.
.LP
\fBintvec\fP is the software interrupt vector used for communication to the
packet driver, and \fBtxqlen\fP is the maximum number of packets that will
be allowed on the transmit queue.
.NH 2
attach pc100 <ioaddr> <vector> ax25 <iface> <bufsize> <speed>
.LP
Driver for the PACCOMM PC-100 (Zilog 8530) card.
Only AX.25 operation is supported.
.NH 2
attach scc <devices> init <addr> <spacing> <Aoff> <Boff> <Dataoff> <intack>
<vec> [p | r]<clock> [<hdwe>] [<param>]
.LP
PE1CHL driver to initialize a generic SCC (8530) interface board
prior to actually attaching it. The parameters are as follows:
.NH 3
<devices>
.LP
The number of SCC chips to support.
.NH 3
<addr>
.LP
The base address of the first SCC chip (hex).
.NH 3
<spacing>
.LP
The spacing between the SCC chip base addresses.
.NH 3
<Aoff>
.LP
The offset from a chip's base address to its channel A control register.
.NH 3
<Boff>
.LP
The offset from a chip's base address to its channel B control register.
.NH 3
<Dataoff>
.LP
The offset from each channel's control register to its data register.
.NH 3
<intack>
.LP
The address of the INTACK/Read Vector port. If none,
specify 0 to read from RR3A/RR2B.
.NH 3
<vec>
.LP
The CPU interrupt vector for all connected SCCs.
.NH 3
<clock>
.LP
The clock frequency (PCLK/RTxC) of all SCCs in hertz.
Prefix with 'p' for PCLK, 'r' for RTxC clock (for baudrate gen).
.NH 3
<hdwe>
.LP
Optional hardware type. The following values are currently supported:
1 - Eagle card, 2 - PACCOMM PC-100, 4 - PRIMUS-PC card (DG9BL), 8 - DRSI
PCPA card.
.NH 3
<param>
.LP
Optional extra parameter. At present, this is used only with the PC-100
and PRIMUS-PC cards to set the modem mode. The value 0x22 is used with
the PC-100 and 0x2 is used with the PRIMUS-PC card.
.LP
The \fBattach scc ... init\fP command must be given
before the interfaces are actually attached with the following command.
.NH 2
attach scc <chan> slip | kiss | nrs | ax25 <iface> <mtu> <speed> <bufsize> [<call>]
.LP
Attach an initialized SCC port to the system. The parameters are as follows:
.NH 3
<chan>
.LP
The SCC channel number to attach, 0 or 1 for the first chip's A or B port,
2 or 3 for the second chip's A or B port, etc.
.NH 3
slip | kiss | nrs | ax25
.LP
The operating mode of the interface. \fBslip, kiss\fP
and \fBnrs\fP all operate the
port hardware in asynchronous mode; \fBslip\fP
is Internet-standard serial line
IP mode, \fBkiss\fP generates SLIP frames containing KISS TNC commands and
AX.25 packets and \fBnrs\fP uses NET/ROM local serial link framing conventions
to carry NET/ROM packets. Selecting \fBax25\fP mode puts the interface into
synchronous HDLC mode that is suitable for direct connection to a half duplex
radio modem.
.NH 3
<speed>
.LP
The interface speed in bits per second (eg. 1200).
Prefix with 'd' when an external divider
is available to generate the TX clock. When the clock source is PCLK,
this can be a /32 divider between TRxC and RTxC. When the clock is at RTxC,
the TX rate must be supplied at TRxC. This is needed only for full duplex
synchronous operation. When this arg is given as 'ext', the transmit and
receive clocks are external, and the internal baud rate generator (BRG)
and digital phase locked loop (DPLL) are not used.
.bp
.NH 2
Attach Examples
.LP
Here are some examples of the attach command:
.LP
.DS I 0
.ft CW
# Attach a 3Com Ethernet controller using the standard 3Com address and
# vector (i.e., as it comes out of the box) to use ARPA-standard encapsulation.
# The receive queue is limited to 5 packets, and outgoing packets larger
# than 1500 bytes will be fragmented
attach 3c500 0x300 3 arpa ec0 5 1500
# Attach the PC asynch card normally known as "com1" (the first controller)
# to operate in point-to-point slip mode at 9600 baud, calling it "sl0".
# A 1024 byte receiver ring buffer is allocated. Outgoing packets larger
# than 256 bytes are fragmented.
attach asy 0x3f8 4 slip sl0 1024 256 9600
# Attach the secondary PC asynch card ("com2") to operate in AX.25 mode
# with an MTU of 576 bytes at 9600 baud with a KISS TNC, calling it "ax0".
# By default, IP datagrams are sent in UI frames
attach asy 0x2f8 3 ax25 ax0 1024 576 9600
# Attach a axip wormhole
attach axip ai0 256 129.179.122.10 pa0gri-11
# on the other side of the wormhole
attach axip ai0 256 129.179.122.130 pa0gri-12
# Now assume 129.179.122.10 has a AX.25 interface with callsign pa0gri-10
# and 129.179.122.130 a interface with callsign pa0gri-8
# Now a AX.25 frame like:
# pe1chl->pa0gri-11->pa0gri-8->pe1dna [ data]
# Received by pa0gri-11, set the has-been-digipeated change the interface
# callsign with the one it realy came in from and ecapsulates it
# in a IP frame type 93 and ships it to 129.179.122.130
# pe1chl->pa0gri-10*->pa0gri-8->pe1dna [ data]
# Arived at 129.179.122.130 the next digi is searched for and found.
# The frame is changed into:
# pe1chl->pa0gri-10*->pa0gri-12*->pe1dna [ data]
# so that on the way back the frame will find the "right" interface.
# Attach the packet driver loaded at interrupt 0x7e
# The packet driver is for an Ethernet interface
attach packet 0x7e ethernet 8 1500
.ft P
.DE
.LP
.bp
.NH 1
FTP Subcommands
.LP
During converse mode with an FTP server, everything typed on the console is
first examined to see if it is a locally-known command. If not, the line is
passed intact to the remote server on the control channel. If it is one of
the following commands, however, it is executed locally. (Note that this
generally involves other commands being sent to the remote server on the
control channel.)
.NH 2
dir [<file> | <directory> [<local file>]]
.LP
Without arguments, \fBdir\fP requests that a full directory listing of the remote
server's current directory be sent to the terminal. If one argument is
given, this is passed along in the LIST command; this can be a specific
file or subdirectory that is meaningful to the remote file system. If two
arguments are given, the second is taken as the local file into which the
directory listing should be put (instead of being sent to the console).
The PORT command is used before the LIST command is sent.
.NH 2
flow [off|on]
.LP
Displays or sets the -more- processing on the current ftp session.
When set to on, a -more- prompt is displayed after each screen full of
data. You can do the same with a \fBsession # flow\fP command.
Note that this is a local extension to the standard ftp command set.
.NH 2
get <remote file> [<local file>]
.LP
Asks the remote server to send the file specified in the first argument.
The second argument, if given, will be the name of the file on the local
machine; otherwise it will have the same name as on the remote machine.
The PORT and RETR commands are sent on the control channel.
.NH 2
hash
.LP
A synonym for the \fBverbose 3\fP command.
.NH 2
ls [<file> | <directory> [<local file>]]
.LP
\fBls\fP is identical to the \fBdir\fP command except that the "NLST"
command is
sent to the server instead of the "LIST" command. This results in an
abbreviated directory listing, i.e., one showing only the file names
themselves without any other information.
.NH 2
mget <file> [<file> ...]
.LP
Fetch a collection of files from the server. File names may include
wild card characters; they will be interpreted and expanded into a
list of files by the remote
system using the NLST command. The files will have the same name on
the local system that they had on the server.
.NH 2
mkdir <remote directory>
.LP
Creates a directory on the remote machine.
.NH 2
mput <file> [<file> ...]
.LP
Send a collection of files to the server. File names may include
wild card characters; they will be expanded locally into a list
of files to be sent. The files will have the same name on the
server as on the local system.
.NH 2
put <local file> [<remote file>]
.LP
Asks the remote server to accept data, creating the file named in the
first argument. The second argument, if given, will be the name of the file
on the remote machine; otherwise it will have the same name as on the local
machine. The PORT and STOR commands are sent on the control channel.
.NH 2
rmdir <remote directory>
.LP
Deletes a directory on the remote machine.
.NH 2
type [a | i | l <bytesize>]
.LP
Tells both the local client and remote server the type of file that is
to be transferred. The default, (wich can be changed with the \fBftype\fP
command) is 'a', which means ASCII (i.e., a text
file). Type 'i' means \fIimage\fP, i.e., binary. In ASCII mode, files are
sent as varying length lines of text in ASCII separated by cr/lf
sequences; in IMAGE mode, files are sent exactly as they appear in the
file system. ASCII mode should be used whenever transferring text
between dissimilar systems (e.g., UNIX and MS-DOS) because of their
different end-of-line and/or end-of-file conventions. When exchanging
text files between machines of the same type, either mode will work but
IMAGE mode is usually faster. Naturally, when exchanging raw
binary files (executables, compressed archives, etc) IMAGE mode must be
used. Type 'l' (logical byte size) is used when exchanging binary files
with remote servers having oddball word sizes (e.g., DECSYSTEM-10s and
20s). Locally it works exactly like IMAGE, except that it notifies the
remote system how large the byte size is. \fBbytesize\fP is typically 8.
The type command sets the local transfer mode and generates the TYPE
command on the control channel.
.NH 2
verbose [0 | 1 | 2 | 3]
.LP
Set or display the level of message output in file transfers.
\fBVerbose 0\fP gives the least output, and \fBverbose 3\fP the most,
as follows:
.DS I 0
0 - Display error messages only.
1 - Display error messages plus a one-line summary after each transfer
giving the name of the file, its size, and the transfer time and rate.
2 - Display error and summary messages plus the progress messages generated
by the remote FTP server. (This setting is the default.)
3 - Display all messages. In addition, a "hash mark" (#) is displayed for
every 1,000 bytes sent or received.
.DE
If a command is sent to the
remote server because it is not recognized locally, the response
is always displayed, regardless of the setting of \fBverbose\fP.
This is necessary for commands like \fBpwd\fP (display working directory),
which would
otherwise produce no message at all if \fBverbose\fP were set to 0 or 1.
.bp
.NH 1
Dialer Subcommands
.LP
Each dialer command may (should) have a different dialer file.
The file resides in the configuration directory,
as specified in the \fBInstallation\fP section (see chapter 1).
A typical dialer file might be:
.DS
.eo
# Set the speed, and toggle DTR to ensure modem is in command mode.
control down
wait 3000
speed 2400
control up
wait 3000
# Dial, and wait for connection
send "atdt555-1212\\r"
wait 45000 "CONNECT " speed
wait 2000
# PAD specific initialization
send "\\r"
wait 15000 "Terminal ="
send "ppp\\r"
wait 10000 "\\r\\n"
.ec \
.DE
.NH 3
control down | up
.LP
Control \fBasy\fP interface.
The \fBdown\fP option drops DTR and RTS.
The \fBup\fP option asserts DTR and RTS.
.NH 3
send "string"
.LP
This dialer command will write the specified string to the interface.
The string quote marks are required,
and the string may not contain embedded control characters.
However, the standard C string escape sequences are recognized
(\\0 should not be used).
.NH 3
speed [ 9600 | 4800 | 2400 | 1200 | 300 ]
.LP
This dialer command will set the speed of the interface to one of the
available speeds.
If the speed is missing,
the speed will be displayed in the dialer session window.
.NH 3
wait <milliseconds> [ "test string" ] [ speed ]
.LP
If only the time is specified,
the dialer pauses for the desired number of milliseconds.
.LP
Otherwise, the dialer reads until the test string is detected on the interface.
If the string is not detected within the desired time,
the autodialer will reset.
The string quote marks are required,
and the string may not contain embedded control characters.
However, the standard C string escape sequences are recognized
(\\0 should not be used).
.LP
Finally, if the \fIspeed\fP parameter is specified,
the dialer will continue to read characters until a non-digit is detected.
The string read is converted to an integer,
and used to set the interface speed.
If the trailing non-digit is not detected within the desired time,
or the integer value is not a valid speed,
the autodialer will reset.
.bp
.NH 1
Installation
.LP
\fBNos\fP uses the following file and directory structure:
.DS
~/alias
~/autoexec.nos
~/dialer
~/domain.txt
~/ftpusers
~/net.rc
~/netron.sav
~/popusers
~/finger/
~/etc/printcap
~/etc/lpdperms
~/etc/log
~/spool/areas
~/spool/mail.log
~/spool/net.log
~/spool/forward.bbs
~/spool/history
~/spool/rewrite
~/spool/help/
~/spool/mail/
~/spool/mqueue/
~/spool/news/
~/spool/news/active
~/spool/news/pointer
~/spool/news/info
~/spool/news/help
~/spool/news/history
~/spool/news/forward
~/spool/news/poll
~/spool/rqueue/
~/spool/signatur/
~/spool/lpd/
.DE
.LP
The ~ in front of all files is a directory offset definable with the
\fB-d\fP option on the \fBNos\fP command line.
Any name may be chosen and is default empty. (eg. just /)
If for example \fB-d /net\fP is given, the structure shifts to /net/...
The \fBalias, autoexec.nos, dialer, domain.txt net.rc, popusers\fP
and \fBftpusers\fP configuration files are located here.
The \fBnetrom.sav\fP file will be created there.
.LP
The "/spool" directory and its sub-directories are used by the bbs,
SMTP and NNTP services.
The \fBareas, forward.bbs, history, mail.log\fP and \fBrewrite\fP
configuration files are located here.
The /spool/news directory can have many subdirectories and each
subdirectory can have subdirectories. Newsgroups are split into heirarchical
directory structures. A news article in newsgroup rec.amateur.radio.packet
will end up in /spool/news/rec/amateur/radio/packet.txt.
.NH 2
The /ftpusers File
.LP
Since MS-DOS is a single-user operating system (some might say it is
a glorified bootstrap loader), it provides
no access control; all files can be read, written or deleted by the
local user. It is usually undesirable to give such open access to a
system to remote network users. Net therefore provides its own
access control mechanisms.
.LP
The file \fBftpusers\fP controls remote FTP and mailbox access.
The FTP default
is \fIno\fP access; if this file does not exist, the FTP server will be
unusable. A remote user must first "log in" to the system with the USER
and PASS commands, giving a valid name and password listed in \fBftpusers\fP,
before he or she can transfer files.
.LP
Each entry in \fBftpusers\fP consists of a single line of the form
.DS I 0
.ft CW
username password /path permissions ip_address
.ft P
.DE
.LP
There must be at least four fields, and there must be exactly one space
between each field. Comments may be added after the last field.
Comment lines begin with '#' in column one.
.LP
\fBusername\fP is the user's login name.
.LP
\fBpassword\fP is the required password. Note that this is in
plain text; therefore it is not a good idea to give general read
permission to the root directory. A password of '*' (a single asterisk)
means that any password is acceptable.
.LP
\fB/path\fP is the allowable prefix on accessible files. Before any
file or directory operation, the current directory and the user-
specified file name are joined to form an absolute path name in
"canonical" form (i.e., a full path name starting at the root, with "./"
and "../" references, as well as redundant /'s, recognized and removed).
The result MUST begin with the allowable path prefix; if not, the
operation is denied. This field must always begin with a
"/", i.e., at the root directory.
Multiple directories can be specified by separating them with a ";"
caracter and no whitespace around them.
.LP
\fBpermissions\fP is a decimal number granting permission for read,
create and write operations. If the low order bit (0x1) is set, the
user is allowed to read a file subject to the path name prefix
restriction. If the next bit (0x2) is set, the user is allowed to
create a new file if it does not overwrite an existing file. If the
third bit (0x4) is set, the user is allowed to write a file even if it
overwrites an existing file, and in addition he may delete files. Again,
all operations are allowed subject to the path name prefix restrictions.
Permissions may be combined by adding bits, for example, 0x3 (= 0x2 + 0x1)
means that the user is given read and create permission, but not
overwrite/delete permission.
.LP
Additional permission bits used by the mailbox and PPP are:
.DS I 0
.ft CW
1 Read files
2 Create new files
4 Overwrite and delete existing files
8 AX.25 gateway operation allowed
16 Telnet gateway operation allowed
32 NET/ROM gateway operation allowed
64 Remote sysop access allowed (DANGEROUS)
128 This user is banned from BBS access (illegal user)
256 Priv bit for PPP connection
512 Priv bit for peerID/pass lookup
1024 disallow send commands (except to SYSOP)
2048 disallow read commands
4096 disallow 3rd party mail
8192 This station is a known BBS
.ft P
.DE
.LP
\fBip_address\fP is used for PPP only and is the remote IP address of the
connected system.
.LP
A username of \fBunivperm\fP has special meaning in the validation meganism.
If \fBunivperm\fP is included as a valid user in \fBftpusers\fP then
any unknown user (not in \fBftpusers\fP) will be mapped into \fBunivperm\fP
and get its permission bits and file path. If \fBunivperm\fP is not
included in \fBftpusers\fP unknown users are not permitted nor validated.
.LP
For example, suppose \fBftpusers\fP on machine
pc.ka9q.ampr.org contains the line
.DS I 0
.ft CW
friendly test /testdir 7
.ft P
.DE
.LP
A session using this account would look like this:
.DS I 0
.ft CW
net> ftp pc.ka9q.ampr.org
Resolving pc.ka9q.ampr.org... Trying 128.96.160.1...
FTP session 1 connected to pc.ka9q.ampr.org
220 pc.ka9q.ampr.org FTP version 900418 ready at Mon May 7 16:27:18 1990
Enter user name: friendly
331 Enter PASS command
Password: test [not echoed]
230 Logged in
ftp>
.ft P
.DE
.LP
The user now has read, write, overwrite and delete privileges for any file
under /testdir; he may not access any other files.
.LP
Here are some more sample entries in \fBftpusers\fP:
.DS I 0
.ft CW
karn foobar / 7 # User "karn" with password "foobar" may read,
# write, overwrite and delete any file on the
# system.
guest bletch /g/bogus;/public 3
# User "guest" with password "bletch" may read
# any file under /g/bogus and its subdirectories,
# and /public and its subdirectories,
# and may create a new file as long as it does
# not overwrite an existing file. He may NOT
# delete any files.
anonymous * /public 1 # User "anonymous" (any password) may read files
# under /public and its subdirectories; he may
# not create, overwrite or delete any files.
.ft
.DE
.LP
This last entry is the standard convention for keeping a repository of
public files; in particular, the username "anonymous" is an established
ARPA convention.
.NH 2
The /popusers File
.LP
Here are the username / password combinations defined for the POP users.
It has a simple convention:
.DS I 0
.ft CW
user:password:
.ft P
.DE
for every POP user such a line has to be added. The user and password
fields sould match the \fBpop userdata\fP statement of the remote user.
Both user and password have to be delimited with a colon character.
.NH 2
The /net.rc File
.LP
The net.rc file is a fast login file for known ftp stations. Each line
starts with the name of the ftp station. Following are a user and password
statemend to be send to the server for validation.
The name, user and password are separated with a space. Not a tab or more
than 1 space character.
Following is a sample net.rc file.
.DS I 0
.ft CW
ucsd.edu anonymous gvdg@gvdgpc.cdh.cdc.com
ka9q.ampr.org guest pa0gri
.ft P
.DE
.NH 2
The /domain.txt File
.LP
\fBNos\fP translates domain names (eg. "pc.ka9q.ampr.org") to IP addresses
(eg. 128.96.160.3) through the use of an Internet Domain Name resolver and
a local "cache" file, \fBdomain.txt\fP.
Whenever the user specifies a domain name,
the local cache is searched for the desired entry.
If it is present, it is used;
if not, and if domain name server(s) have been configured,
a query is sent over the network to the current server.
If the server responds,
the answer is added to the \fBdomain.txt\fP file for future use.
If the server does not respond, any additional servers on the list are
tried in a round-robin fashion until one responds,
or the retry limit is reached (see the \fBdomain retry\fP command).
If \fBdomain.txt\fP does not contain the
desired entry and there are no configured domain name servers,
then the request immediately fails.
.LP
If a domain name server is available, and if all references to host-ids in
your /\fBautoexec.nos\fP file are in IP address format, then it is
possible to start with a completely empty \fBdomain.txt\fP file
and have \fBNos\fP build it for you. However, you may wish to
add your own entries to \fBdomain.txt\fP, either
because you prefer to use symbolic domain names in your
/\fBautoexec.nos\fP file
or you don't have access to a domain server and you need to create entries
for all of the hosts you may wish to access.
.LP
Each entry takes one line,
and the fields are separated by tabs.
For example:
.DS I 0
pc.ka9q.ampr.org. IN A 128.96.160.3
.DE
\fBIN\fP is the \fIclass\fP of the record.
It means \fIInternet\fP, and it will be found in all entries.
\fBA\fP is the \fItype\fP of the record, and it means that this is
an \fIaddress\fP record.
Domain name \fBpc.ka9q.ampr.org\fP therefore has Internet
address 128.96.160.3.
.LP
Another possible entry is the \fBCNAME\fP (Canonical Name) record.
For example:
.DS I 0
ka9q.ampr.org. IN CNAME pc.ka9q.ampr.org.
.DE
This says that domain name "ka9q.ampr.org" is actually an alias for the
system with (primary, or \fIcanonical\fP) domain name "pc.ka9q.ampr.org."
When a domain name having a \fBCNAME\fP
record is given to \fBNos\fP, the system
automatically follows the reference to the canonical name and returns the
IP address associated with that entry.
.LP
Entries added automatically by \fBNos\fP will have an additional field between
the domain name and the class (\fBIN\fP) field. For example:
.DS I 0
pc.ka9q.ampr.org. 3600 IN A 128.96.160.3
.DE
This is the \fItime-to-live\fP value, in seconds, associated with the record
received from the server. Clients (such as \fBNos\fP) caching these records are
supposed to delete them after the time-to-live interval has expired,
allowing for the possibility that the information in the record may become
out of date.
.LP
This implementation of \fBNos\fP will decrement the TTL to zero, but will not
delete the record unless the "clean" flag is on
(see the \fBdomain cache clean\fP command).
When a remote server is not available, the old entry will be used.
.LP
When the \fITTL\fP value is missing (as in the examples above),
the record will never expire, and must be managed by hand.
Since \fBdomain.txt\fP is a plain text file,
it may be easily edited by the user to add, change or delete records.
.LP
Additional types of records, include NS (name server) and SOA (start of
authority) may appear in \fBdomain.txt\fP from remote server responses. These
are not currently used by \fBNos\fP but are retained for future development
(such as the incorporation of a domain name server into \fBNos\fP itself).
.NH 2
The /alias file.
.LP
SMTP server ALIAS file. This is for resolving a given target address into
a single or multiple entry mail list.
Format:
mail_list_name call_1@host_1 [call_2@host_2]......# comments
.LP
pa0gri gvdg@fridley.cdh.cdc.com
kelvin g1emm@g1emm.ampr.org
#
bob gb3xp@gb3xp.ampr.org
ian g3rra@g3rra.ampr.org
jim g1wkk@g1wkk.ampr.org
john g5ds%gb3kp@gb3xp.ampr.org
ted gb3kp%gb3kp@gb3xp.ampr.org
ron g6vug@g6vug.ampr.org
tim g4uqe@g4uqe.ampr.org
gareth g6kvk%gb7spv@gb3xp.ampr.org
bolton gb7tcp%gb7crg@gb3xp.ampr.org
julian g7efe%gb7cfb@gb3xp.ampr.org
#
world g3rra@g3rra.ampr.org gb3xp@gb3xp.ampr.org g1plt@g1plt.ampr.org
g1wkk@g1wkk.ampr.org g8kwi@g8kwi.ampr.org g6kvk%gb7spv@gb3xp.ampr.org
g1ttg@g1ttg.ampr.org g6vug@g6vug.ampr.org g6kqz@g6kqz.ampr.org
g4uqe@g4uqe.ampr.org g8ogr@g8ogr.ampr.org g4xwv@g4xwv.ampr.org
#
locals g3rra@g3rra.ampr.org g1wkk@g1wkk.ampr.org g8kwi@g8kwi.ampr.org
g4bio@g4bio.ampr.org g1plt@g1plt.ampr.org g4uqe@g4uqe.ampr.org
g6kqz@g6kqz.ampr.org g4tnu@g4tnu.ampr.org g6xqb@g6xqb.ampr.org
.LP
Note that it is reaonable, and sometimes desiable, to have alias records
in the form:
area area dest1 dest2
As the /alias file is scanned only once, this does not result in an
infinite recursion.
.NH 2
The /spool/areas file.
.LP
This file is a header file shown to a mailbox user when he requests the a
display. It should show all public mailboxes to read. Here is a sample:
------------- Public -- Mail -- Areas -------------
|
General -- Any old chit-chat that is clean. |
TcpIp -- General Tcp/Ip messages. NOS etc. |
Bugs -- Where to report bugs in Ka9q-NOS |
Updates -- Info - NOS version UPDATES by G1EMM. |
|
---------------------------------------------------------
.NH 2
The /spool/forward.bbs file.
.LP
The mailbox reads a forwarding file, \fBspool/forward.bbs\fP. Here is a sample
file.
wb0ttw 0006
ax25 ax0 wb0ttw
wb0ttw
w0tn
mspbul
all
------
wb0gdb
netrom #msparh
..c msparh
all
------
The first word on the first line in a forwarding record is the name of the BBS
to forward to. This should be the same type of name which is shown by the
\fImbox status\fP command. The second word is optional. It specifies a range
of hours when forwarding may take place. \fB0006\fP means that there will only
be forwarding to this station between midnight and 6am.
.LP
The second line specifies how to establish the connection. It should start with
the protocol (\fIax25, connect, tcp, telnet\fP or \fInetrom\fP) and be
followed by all the parameters which are nessesary when \fBNos\fP has
to establish a connection.
.LP
Directly after the second line, there may be lines that start with a dot.
What follows after the dot will be send to the remote BBS as soon as
the connection is established.
.LP
Then follows the names of a number of message areas, publib or private.
Finally, there should be a couple of '-' signs to separate one forwarding
record from another. Also terminate the file with a last line of dashes.
.NH 2
The /spool/rewrite file.
.LP
Read the rewrite file for lines where the first word is a regular
expression and the second word are rewriting rules.
An optional third field, containing just the letter "r", when present, instructs
\fBNos\fP to restart the rewrite file, using the new destination address.
The special character '$' followed by a digit denotes the string that matched
a '*' character. The '*' characters are numbered from 1 to 9.
Example: the line "*@*.* $2@$1.ampr.org" would rewrite the address
"foo@bar.xxx" to "bar@foo.ampr.org".
#
*@g1emm.ampr.org $1
*@g1emm.ampr $1
*@g1emm $1
#
*!*!*!*!*!*!* $7%$6@$5@$4@$3@$2@$1
*!*!*!*!*!* $6%$5@$4@$3@$2@$1
*!*!*!*!* $5%$4@$3@$2@$1
*!*!*!* $4%$3@$2@$1
*!*!* $3%$2@$1
*!* $2@$1
!* $1 r
#
# The End
.LP
.bp
.NH 1
Setting Bufsize, Paclen, Maxframe, MTU, MSS and Window
.LP
Many \fBNos\fP users are confused by these parameters and do not know how to
set them properly. This chapter will first review these parameters and
then discuss how to choose values for them. Special emphasis is given to
avoiding interoperability problems that may appear when communicating
with non-\fBNos\fP implementations of AX.25.
.NH 2
Hardware Parameters
.LP
.NH 3
Bufsize
.LP
This parameter is required by most of \fBNos\fP's built-in HDLC drivers
(eg. those for the DRSI PCPA and the Paccomm PC-100). It specifies the size
of the buffer to be allocated for each receiver port. HDLC frames
larger than this value cannot be received.
.LP
There is no default \fBbufsize\fP; it must be specified in the \fBattach\fP
command for the interface.
.NH 2
AX25 Parameters
.NH 3
Paclen
.LP
Paclen limits the size of the data field in an AX.25 I-frame. This
value does \fInot\fP include the AX.25 protocol header (source,
destination and digipeater addresses).
.LP
Since unconnected-mode (datagram) AX.25 uses UI frames, this parameter
has no effect in unconnected mode.
.LP
The default value of \fBpaclen\fP is 256 bytes.
.NH 3
Maxframe
.LP
This parameter controls the number of I-frames that \fBNos\fP may send
on an AX.25 connection before it must stop and wait for an acknowledgement.
Since the AX.25/LAPB sequence number field is 3 bits wide, this number
cannot be larger than 7.
.LP
Since unconnected-mode (datagram) AX.25 uses UI frames that do not have
sequence numbers, this parameter does \fInot\fP apply to unconnected
mode.
.LP
The default value of \fBmaxframe\fP in \fBNos\fP is 1 frame.
.NH 2
IP and TCP Parameters
.NH 3
MTU
.LP
The MTU (Maximum Transmission Unit) is an interface parameter that
limits the size of the largest IP
datagram that it may handle. IP datagrams routed to
an interface that are larger than its MTU are each split into two or more
\fIfragments\fP.
Each fragment has its own IP header and is handled by the network
as if it were a distinct IP datagram, but when it arrives at
the destination it is held by the IP layer until all of the other fragments
belonging to the original datagram have arrived. Then they are reassembled
back into the complete, original IP datagram.
The minimum acceptable interface MTU is 28
bytes: 20 bytes for the IP (fragment) header, plus 8 bytes of data.
.LP
There is no default MTU in \fBNos\fP; it must be explicitly specified for
each interface as part of the \fBattach\fP command.
.NH 3
MSS
.LP
MSS (Maximum Segment Size) is a TCP-level parameter that limits the
amount of data that the \fIremote\fP TCP will send in a single TCP
packet. MSS values are exchanged in the SYN (connection request)
packets that open a TCP connection. In the \fBNos\fP implementation of TCP,
the MSS actually used by TCP is further reduced in order to avoid
fragmentation at the local IP interface. That is, the local TCP asks IP
for the MTU of the interface that will be used to reach the
destination. It then subtracts 40 from the MTU value to allow for the
overhead of the TCP and IP headers. If the result is less than the MSS
received from the remote TCP, it is used instead.
.LP
The default value of \fBMSS\fP is 512 bytes.
.NH 3
Window
.LP
This is a TCP-level parameter that controls how much data the local TCP
will allow the remote TCP to send before it must stop and wait for an
acknowledgement. The actual window value used by TCP when deciding how
much more data to send is referred to as the \fIeffective window\fP.
This is the smaller of two values: the window advertised by the remote
TCP minus the unacknowledged data in flight, and the \fIcongestion
window\fP, an automatically computed time-varying estimate of how much
data the network can handle.
.LP
The default value of \fBWindow\fP is 2048 bytes.
.NH 2
Discussion
.LP
.NH 3
IP Fragmentation vs AX.25 Segmentation
.LP
IP-level fragmentation often makes it possible to interconnect two
dissimilar networks, but it is best avoided whenever possible.
One reason is that when a single IP fragment is lost, all other fragments
belonging to the same datagram are effectively also lost and
the entire datagram must be retransmitted by the source.
Even without loss, fragments require the allocation of temporary buffer
memory at the destination, and it is never easy
to decide how long to wait for missing fragments before
giving up and discarding those that have already arrived.
A reassembly timer controls this process.
In \fBNos\fP it is (re)initialized with the \fBip rtimer\fP parameter
(default 30 seconds) whenever progress is made in reassembling a datagram
(i.e., a new fragment is received).
It is not necessary that all of the fragments belonging to a datagram
arrive within a single timeout interval, only that the interval between
fragments be less than the timeout.
.LP
Most subnetworks that carry IP have MTUs of 576 bytes or more, so
interconnecting them with subnetworks having smaller values can result in
considerable fragmentation. For this reason, IP implementors working with
links or subnets having unusually small packet size limits are encouraged
to use
\fItransparent fragmentation\fP,
that is, to devise schemes to break up large IP
datagrams into a sequence of link or subnet frames that are immediately
reassembled on the other end of the link or subnet into the original, whole IP
datagram without the use of IP-level fragmentation. Such a
scheme is provided in AX.25 Version 2.1. It can break
a large IP or NET/ROM datagram into a series of \fBpaclen\fP-sized
AX.25 segments (not to be confused with TCP segments),
one per AX.25 I-frame, for transmission and reassemble them into
a single datagram at the other end of the link before handing it up to the
IP or NET/ROM module. Unfortunately, the segmentation procedure is a new
feature in AX.25 and is not yet widely implemented;
in fact, \fBNos\fP is so far
the only known implementation. This creates some interoperability problems
between \fBNos\fP and non-\fBNos\fP nodes, in particular, standard
NET/ROM nodes being used to carry IP datagrams. This problem is discussed
further in the section on setting the MTU.
.NH 3
Setting paclen and bufsize
.LP
The more data you put into an AX.25 I frame, the smaller the AX.25
headers are in relation to the total frame size. In other words, by
increasing \fBpaclen\fP, you lower the AX.25 protocol overhead. Also, large
data packets reduce the overhead of keying up a transmitter, and this
can be an important factor with higher speed modems. On the other hand,
large frames make bigger targets for noise and interference. Each link
has an optimum value of \fBpaclen\fP that is best discovered by experiment.
.LP
Another thing to remember when setting \fBpaclen\fP is that the AX.25 version
2.0 specification limits it to 256 bytes. Although \fBNos\fP can handle
much larger values, some other AX.25 implementations (including
digipeaters) cannot and this
may cause interoperability problems. Even \fBNos\fP may have trouble with
certain KISS TNCs because of fixed-size buffers. The original KISS TNC
code for the TNC-2 by K3MC can handle frames limited in size only by
the RAM in the TNC, but some other KISS TNCs cannot.
.LP
\fBNos\fP's built-in HDLC drivers (SCC, PC-100, DRSI, etc) allocate receive
buffers according to the maximum expected frame size, so it is
important that these devices be configured with the correct
\fBbufsize\fP. To do this, you must know the size of the largest
possible frame that can be received. The \fBpaclen\fP parameter
controls only the size of the data field in an I-frame and not the
total size of the frame as it appears on the air. The AX.25 spec allows
up to 8 digipeaters, so the largest possible frame is (\fBpaclen\fP + 72)
bytes. So you should make \fBbufsize\fP at least this large.
.LP
Another important consideration is that the more recent versions of NOS
improve interrupt response by maintaining a special pool of buffers for use
by the receive routines. These buffers are currently fixed in size to 2048
bytes and this can be changed only by editing config.h and recompiling NOS.
This limits \fBbufsize\fP; in fact, attempting to set a larger value may
cause the driver not to work at all. This situation can be detected by
running the \fBmemory status\fP command and looking for a non-zero count
of \fBIbuffail\fP events, although these events can also occur
occasionally during normal operation.
.LP
One of the drawbacks of AX.25 that there is no way for one station to tell
another how large a packet it is willing to accept. This requires the
stations sharing a channel to agree beforehand on a maximum packet size.
TCP is different, as we shall see.
.NH 3
Setting Maxframe
.LP
For best performance on a half-duplex radio channel, \fBmaxframe\fP should
always be set to 1. The reasons are explained in the paper \fILink Level
Protocols Revisited\fP by Brian Lloyd and Phil Karn, which appeared in the
proceedings of the ARRL 5th Computer Networking Conference in 1986.
.NH 3
Setting MTU
.LP
TCP/IP header overhead considerations similar to those of the AX.25 layer
when setting \fBpaclen\fP apply when choosing an MTU. However, certain
subnetwork types supported by \fBNos\fP have well-established MTUs, and
these should
always be used unless you know what you're doing: 1500 bytes for Ethernet,
and 508 bytes for ARCNET.
The MTU for PPP is automatically negotiated, and defaults to 1500.
Other subnet types, including SLIP and AX.25, are
not as well standardized.
.LP
SLIP has no official MTU, but the most common
implementation (for BSD UNIX) uses an MTU of 1006 bytes. Although
\fBNos\fP has no hard wired limit on the size of a received SLIP frame,
this is not true for other systems.
Interoperability problems may therefore result if larger MTUs are used in
\fBNos\fP.
.LP
Choosing an MTU for an AX.25 interface is more complex. When the interface
operates in datagram (UI-frame) mode, the \fBpaclen\fP parameter does not
apply. The MTU effectively becomes the \fBpaclen\fP of the link. However,
as mentioned earlier, large packets sent on AX.25 \fIconnections\fP are
automatically segmented into I-frames no larger than \fBpaclen\fP bytes.
Unfortunately, as also mentioned earlier, \fBNos\fP is so far the only known
implementation of the new AX.25 segmentation procedure. This is fine as long
as all of the NET/ROM nodes along a path are running \fBNos\fP, but since the main
reason \fBNos\fP supports NET/ROM is to allow use of existing NET/ROM networks,
this is unlikely.
.LP
So it is usually important to avoid AX.25 segmentation when running IP over
NET/ROM. The way to do this is to make sure that packets larger
than \fBpaclen\fP are never handed to AX.25. A NET/ROM transport header is
5 bytes long and a NET/ROM network header takes 15 bytes, so 20 bytes must
be added to the size of an IP datagram when figuring the size of the AX.25
I-frame data field. If \fBpaclen\fP is 256, this leaves 236 bytes for the IP
datagram. This is the default MTU of the \fBnetrom\fP pseudo-interface, so
as long as \fBpaclen\fP is at least 256 bytes, AX.25 segmentation can't
happen. But if smaller values of \fBpaclen\fP are used, the \fBnetrom\fP MTU
must also be reduced with the \fBifconfig\fP command.
.LP
On the other hand, if you're running IP directly on top of AX.25, chances
are all of the nodes are running \fBNos\fP and support AX.25 segmentation.
In this case there is no reason not to use a larger MTU and let
AX.25 segmentation do its thing. If you choose
an MTU on the order of 1000-1500 bytes, you can largely avoid IP-level
fragmentation and reduce TCP/IP-level header overhead on file transfers
to a very low level.
And you are still free to pick whatever \fBpaclen\fP value is
appropriate for the link.
.NH 3
Setting MSS
.LP
The setting of this TCP-level parameter is somewhat less critical than the
IP and AX.25 level parameters already discussed, mainly because it is
automatically lowered according to the MTU of the local interface when a
connection is created. Although this is, strictly speaking, a protocol
layering violation (TCP is not supposed to have any knowledge of the
workings of lower layers) this technique does work well in practice.
However, it can be fooled; for example, if a routing change occurs after the
connection has been opened and the new local interface has a smaller MTU
than the previous one, IP fragmentation may occur in the local system.
.LP
The only drawback to setting a large MSS is that it might cause avoidable
fragmentation at some other point within the network path if it includes a
"bottleneck" subnet with an MTU smaller than that of the local interface.
(Unfortunately, there is presently no way to know when this is the case.
There is ongoing work within the Internet Engineering Task Force on a "MTU
Discovery" procedure to determine the largest datagram that may be sent over
a given path without fragmentation, but it is not yet complete.)
Also, since the MSS you specify is sent to the remote system, and not all
other TCPs do the MSS-lowering procedure yet, this might cause the remote
system to generate IP fragments unnecessarily.
.LP
On the other hand, a too-small MSS can result in a considerable performance
loss, especially when operating over fast LANs and networks that can handle
larger packets. So the best value for MSS is probably 40 less than the
largest MTU on your system, with the 40-byte margin allowing for the TCP and
IP headers. For example, if you have a SLIP interface with a 1006 byte MTU
and an Ethernet interface with a 1500 byte MTU, set MSS to 1460 bytes. This
allows you to receive maximum-sized Ethernet packets, assuming the path to
your system does not have any bottleneck subnets with smaller MTUs.
.NH 3
Setting Window
.LP
A sliding window protocol like TCP cannot transfer more than one window's
worth of data per round trip time interval. So this TCP-level parameter
controls the ability of the remote TCP to keep a long "pipe" full. That is,
when operating over a path with many hops, offering a large TCP window will
help keep all those hops busy when you're receiving data. On the other hand,
offering too large a window can congest the network if it cannot buffer all
that data. Fortunately, new algorithms for dynamic controlling the
effective TCP flow control window have been developed over the past few
years and are now widely deployed.
\fBNos\fP includes them, and you can watch them
in action with the \fBtcp status <tcb>\fP or \fBsocket <sockno>\fP commands.
Look at the \fBcwind\fP (congestion window) value.
.LP
In most cases it is safe to set the TCP window to a small integer
multiple of the MSS, (eg. 4times), or larger if necessary to fully utilize a
high bandwidth*delay product path. One thing to keep in mind, however, is
that advertising a certain TCP window value declares that the system has
that much buffer space available for incoming data.
\fBNos\fP does not actually preallocate this space;
it keeps it in a common pool and may well "overbook" it,
exploiting the fact that many TCP connections are idle for long periods
and gambling that most applications will read incoming data from an active
connection as soon as it arrives, thereby quickly freeing the buffer memory.
However, it is possible to run \fBNos\fP out of memory if excessive TCP window
sizes are advertised and either the applications go to sleep indefinitely
(eg. suspended Telnet sessions) or a lot of out-of-sequence data arrives.
It is wise to keep an eye on the amount of available memory and to decrease
the TCP window size (or limit the number of simultaneous connections) if it
gets too low.
.LP
Depending on the channel access method and link level protocol, the use
of a window setting that exceeds the MSS may cause an increase in channel
collisions. In particular, collisions between data packets and returning
acknowledgements during a bulk file transfer
may become common. Although this is, strictly speaking,
not TCP's fault, it is possible to work around the problem at the TCP level
by decreasing the window so that the protocol operates in stop-and-wait mode.
This is done by making the window value equal to the MSS.
.NH 2
Summary
.LP
In most cases, the default values provided by \fBNos\fP for each of these
parameters
will work correctly and give reasonable performance. Only in special
circumstances such as operation over a very poor link or experimentation
with high speed modems should it be necessary to change them.